Я изучаю apply, и я пытаюсь понять, почему код, который я изучаю, передает только один параметр.Почему в этом случае применяется только один параметр?
Я сначала определить Quo:
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, я передаю только один параметр, который, я считаю, определяет «this». Можете ли вы прояснить, что именно происходит в этом методе, для чего необходимо применение, и почему в этом случае я могу передать только один параметр методу, когда ему нужно указать два. Спасибо.
Для функции 'get_status' нет параметров, поэтому параметры не должны предоставляться. Если бы они были предоставлены, их просто проигнорировали бы. Код может использовать 'call' так же легко. – zzzzBov
'.apply' не нужно,' .call' сделал бы то же самое. '.apply' - единственный способ передать неизвестное количество аргументов функции, которая вам здесь не нужна. В чем проблема? :) – Esailija