Редактировать: этот вопрос был задан из-за моего недоразумения. Соблюдайте осторожность, так как чтение это может растратить ваше время.Функции вызова и применения 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.)