JavaScript中的call()和apply()

了解如何使用call()和apply()及其在JavaScript中的區別

call()和apply()是JavaScript提供的用於執行非常具體的任務的兩個函數:調用一個函數並設置其this價值。

看看我的“本”指南了解有關此特定變量的所有詳細信息

一個功能可以使用this許多不同用例的價值。問題是它是由環境提供的,除非使用,否則無法從外部進行更改call()或者apply()

使用這些方法時,您可以傳入一個附加對象,該對象將用作this在調用的函數中。

這些功能執行相同的操作,但有所不同。在call()您可以將函數參數作為以逗號分隔的參數列表進行傳遞,並在需要時輸入所需數量的參數。apply()您傳遞包含參數的單個數組:

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}

const drive = function(from, to, kms) { console.log(Driving for </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">kms</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> kilometers from </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">from</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> to </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">to</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> with my car, a </span><span style="color:#e6db74">${</span><span style="color:#66d9ef">this</span>.<span style="color:#a6e22e">brand</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> </span><span style="color:#e6db74">${</span><span style="color:#66d9ef">this</span>.<span style="color:#a6e22e">model</span><span style="color:#e6db74">}</span><span style="color:#e6db74">) }

drive.call(car, ‘Milan’, ‘Rome’, 568) drive.apply(car, [‘Milan’, ‘Rome’, 568])

請注意,使用時箭頭功能 this不受限制,因此此方法僅適用於常規函數。

免費下載我的JavaScript初學者手冊


更多js教程: