我在mozilla文檔中看到這個例子。有以下說明:用通俗的語言解釋.call()。幫助理解它
「在這個純粹構造的例子中,我們創建匿名函數並使用調用來調用它在數組中的每個對象上,這裏的匿名函數的主要目的是爲每個對象添加一個打印函數,它能夠打印數組中對象的正確索引,將該對象作爲該值傳遞並不是絕對必要的,但是這是爲了解釋目的而完成的。「
var animals = [
{species: 'Lion', name: 'King'},
{species: 'Whale', name: 'Fail'}
];
for (var i = 0; i < animals.length; i++) {
(function (i) {
this.print = function() {
console.log('#' + i + ' ' + this.species + ': ' + this.name);
}
}).call(animals[i], i);
}
我不明白的是在這裏叫做什麼。如果我們沒有它,我們是不是仍然要通過匿名功能來循環和安慰價值?這是否與關閉做任何事情?我只是想了解如何使用.call()以及爲什麼。
「外行人」條款?外行人對編程有什麼瞭解嗎? –
您可能想要閱讀MDN的[關於'this'關鍵字的介紹](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/this) – Bergi
並且在獲得'this'關鍵字下降.. [呼叫參考](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/call) – Stephen