我正在學習apply,我想了解爲什麼我正在學習的代碼只傳遞一個參數來應用。爲什麼在這種情況下只適用一個參數?
我首先定義現狀:
var Quo = function(string) {
this.status = string;
};
接下來我定義GET_STATUS:
Quo.prototype.get_status = function() {
return this.status;
};
我定義statusObject:
var statusObject = {
status: 'yo!'
};
而這正是我迷失:
var status = Quo.prototype.get_status.apply(statusObject);
// status is 'yo!'
根據documentation「Apply調用具有給定此值和作爲數組提供的參數的函數」。你可以看到在這種情況下,使用apply我只傳遞一個參數,我相信這是定義「this」。你能清楚這個方法究竟發生了什麼,爲什麼應用是必要的,爲什麼在這種情況下,我只能通過一個參數的方法,當它聲明兩個是必要的。謝謝。
'get_status'函數沒有必要的參數,所以不需要提供任何參數。如果他們被提供,他們就會被忽略。代碼可以很容易地使用'call'。 – zzzzBov
'.apply'沒有必要,'.call'也會做同樣的事情。 '.apply'是將未知數量的參數傳遞給你不需要的函數的唯一方法。問題是什麼? :) – Esailija