javascript中apply與call函式

2021-07-24 10:38:37 字數 392 閱讀 5941

首先,function是乙個指向function物件,函式名是乙個指向函式的指標。那麼在函式體內,就會有乙個作用域,即this關鍵字。

this關鍵字指的是函式執行的作用域,舉個例子來說,

上面這段**中的函式funca定義在全域性環境中,那麼函式體內的this即window物件。

我們定義funcb函式的中,呼叫了funca的call函式,這個時候我們改變了funca中this的指向,原本指向window的,現在指向了call的第乙個引數testo這個物件。而且呼叫call時,因為funca函式有兩個引數,所以如果要想funca傳遞引數,必須一一指出引數,即後面的兩個引數a和b,或者可以只穿第乙個引數

即:funca.call(testo);或者只傳a,即:funca.call(testo,a);

Javascript中call和apply的區別

如下 function add a,b function reduce a,b add.call reduce,1,3 將add方法運用到reduce,結果為4 如下例 如下 複製 function b b window b.call window b.call a 2,3 a 再看乙個複雜的例子 ...

javascript中call與apply的區別

123 45 call 方法 function.call thisobj arg1 arg2 argn call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙個...

javascript中call與apply的區別

123 45 call 方法 function.call thisobj arg1 arg2 argn call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例如 b.call a,args1,args2 即a物件呼叫b物件的方法。它們的共同之處 都 可以用來代替另乙個物件呼叫乙個方法,將乙個...