我正在学习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