編輯:這個問題是由於我的誤解而被問到的。謹慎行事,因爲閱讀可能會浪費你的時間。僅在第一個參數上調用Javascript調用和應用函數?
我以爲call
和apply
會執行一個給定一組參數的函數,但我得到了令人困惑的測試結果。看我的測試代碼:
window.z = 0;
(function(){++(window.z)}).call(this, 1, 2, 3)
我期望z
在執行後爲3。但是,z是1.
(function(){++(window.z)}).apply(this, [1, 2, 3])
同樣在這裏。 z == 1;
我試着只需登錄輸入參數,以及:
var x = function(y){console.log(y);}
x.call(this, 1, 2, 3);
結果?僅記錄1個。
我在這裏做錯了什麼?
(在Chrome和Firefox測試使用Firebug。)