1. 程式人生 > >Js中apply與call的區別與用法

Js中apply與call的區別與用法

解析:

apply與call是更改物件的內部指標,即改變物件的this指向的內容。
call與apply的第一個引數都是要傳入給當前物件的物件,及函式內部的this。後面的引數都是傳遞給當前物件的引數。

引數區別:

apply傳入的必須是一個引數陣列,也就是將多個引數組合成為一個數組傳入,而call沒有此限制。

程式碼分析:

var func=new function(){this.a="fun"};
var myfunc=function(s){
     var a="myfunc";
     console.log(this.a);
     console.log(a);
     console.log(s);
 };
 myfunc.call(func,"test"
); //fun myfunc test myfunc.apply(func,["test"]); //fun myfunc test myfunc.call(func,["test"]); //fun myfunc ["test"] myfunc('444') //undefined myfunc 444
ps:鑑於個人經驗有限,所有觀點,如有異議,請直接回復討論(請勿發表攻擊言論)。
加入QQ群209952809(需回答問題,答案為csdn);群聊更快解決問題,更happy。