JS知識整理之 Call&Apply方法

JavaScript中的函數也是對象,和其餘JS對象同樣也能夠包含方法,其中Call和Apply就是其中比較重要的方法,能夠用來間接的調用函數。這兩個方法容許顯式制定調用所需的this值,也就是說全部函數能夠做爲任何對象的方法來使用,哪怕這個函數不是那個對象的方法。數組

Call方法:
語法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
Apply方法:app

語法:apply([thisObj[,argArray]])函數

Call和Apply方法做用相同,但從以上語法來看,他們傳入的參數方式不一樣,兩個方法第一個參數都是須要調用方法的對象(thisObj),函數所須要的實參Call方法是以列表形式傳入,而Apply方法則須要以數組形式傳入實參。this

實例:spa

 1         function People(name, age) {
 2 
 3             this.name = name;
 4             this.age = age;
 5             this.showName = function () {
 6 
 7                 console.log(this.name);
 8 
 9             }
10         }
11 
12 
13         function Student(name, age) {
14 
15             this.name = name;
16             this.age = age;
17             this.showAge = function () {
18 
19                 console.log(this.age);
20             }
21         }
22 
23 
24             var people = new People("peopleName", 20);
25             var student = new Student("studentName", 10);
26 
27             people.showName.call(student);//輸出studentName

在以上代碼中,一樣能夠使用people.showName.apply(student),輸出結果仍是studentName。code

相關文章
相關標籤/搜索