call func.
call
(obj,args1,args2)
;//傳入的是引數列表
(obj,
[args1,args2]
);
改變this
的指向,讓bar
()函式的this指向foo物件
var foo=
function
bar(
)bar.
(foo)
;等同與將bar函式作為foo物件屬性進行呼叫,即為下列方式
var foo=
}因此我們總結模擬思路如下:
1.將執行的函式作為物件屬性
2.執行函式
3.將函式從物件中刪除
function.prototype.
mycall
=function
(obj)
function.prototype.
=function
(obj)
else
var result=obj.
func
(...args)
;//執行函式
delete obj.func;
//刪除函式
return result;
}
apply call與bind函式的模擬實現
this是函式呼叫時產生的物件,該物件繫結函式呼叫時所在執行環境。call bind方法在使用乙個指定的 this 值和若干個指定的引數值的前提下呼叫某個函式或方法。function obj window,args function mycall obj window,args bind 方法會建立...
實現apply call 方法
實現乙個call方法 function.prototype.mycall function context context.fn args let result context.fn args delete context.fn return result var value 2 var obj f...
實現apply call 方法
實現乙個call方法 function.prototype.mycall function context context.fn args let result context.fn args delete context.fn return result var value 2 var obj f...