這篇文章主要和大家介紹JavaScript中的call()和apply()方法的使用以及它們之間的區別,有一定的參考價值,希望對大家有幫助
#在JavaScript中我們常用兩種方法來改變this的指向,簡化程式碼的複雜度,這兩種方法就是call()和apply()方法,接下來將分享它們的用法與區別
#call()方法
call()方法中第一個參數是改變this指向,第二個參數是需要傳的參數
<script> function Person(name, age,height){ this.name=name; this.age=age; this.height=height; } function Student(name,age,height,sex,grade){ Person.call(this,name,age,height);//将Person的参数传给Student this.sex=sex; this.grade=grade;} var student=new Student("张三",18,180,"男",88); </script> 运行结果:
apply()方法
#apply()方法改變this指向,第二個值只能傳一個實參且是陣列
<script> function Person(name, age,height){ this.name=name; this.age=age; this.height=height; } function Student(name,age,height,sex,grade){ Person.apply(this,[name,age,height]);//注意这儿传递的是数组 this.sex=sex; this.grade=grade;} var student= new Student("张三",18,180,"男",88); </script> 运行结果:
#call()與apply()方法的差異
call()方法的第二個值可以傳遞多個參數,實參必須要按照形參的個數和順序進行傳參
apply()方法的第二個值只能傳一個必須是數組才可以,所以apply()方法適合使用形參是數組的,call()方法適合傳遞連續的參數
總結:以上就是本篇文章的全部內容,希望大家在應用時要注意方法的選擇
以上是call()和apply()方法有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!