js中call 與apply 的用法

2021-07-06 04:46:08 字數 515 閱讀 8207

functionname.call([obj], [arg1, arg2...])

call()可以用來代替另乙個物件呼叫某個方法。如果沒有提供obj引數,則obj為全域性物件(即為this值)。

例子如:

function add(a,b)

function sub(a,b)

add.call(sub,3,1); 

這個例子的結果為4,add.call(sub,3,1)在這裡實際上的意思是等價於

add(3,1)而在函式的方法體內,this == sub。在這裡例子裡我們無法觀察到this改變的影響。但在平時的**編寫中,作用非常大。

我在平時閱讀**的時候,最常見到的call的用法為functionname.call(this). 這種行為是為了解決this在js中多變性的問題。因為我們知道,this在js中經常會因為作用域的改變而改變指向的內容,call(this)這種方法可以在不改變function內部方法的同時,將this指定為方法外的this物件。在一些實際的運用中可謂非常的方便。

js中call與apply用法

兩者的格式和引數定義 call thisarg arg1,arg2,引數列表,arg1,arg2,上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的 一 call 的簡單用法 首先,我們先看個簡單的例子 call 然後,執行結果如下 globa...

js中call與apply用法

兩者的格式和引數定義 call thisarg arg1,arg2,引數列表,arg1,arg2,上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的 一 call 的簡單用法 首先,我們先看個簡單的例子 call 然後,執行結果如下 globa...

js中call與apply用法

1 2兩者的格式和引數定義 3 call thisarg arg1,arg2,引數列表,arg1,arg2,引數陣列,argarray 5上面兩個函式內部的this指標,都會被賦值為thisarg,這可實現將函式作為另外乙個物件的方法執行的目的67 一 call 的簡單用法 8首先,我們先看個簡單的...