Js中apply與call的區別與用法
阿新 • • 發佈:2019-02-09
解析:
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。