如果您查看 Backbone.js 的源代码,您会看到此模式的多种用途:
this.initialize.apply(this, arguments);
例如,这里:
var Router = Backbone.Router = function(options) {
options || (options = {});
if (options.routes) this.routes = options.routes;
this._bindRoutes();
this.initialize.apply(this, arguments);
};
为什么不直接写 this.initialize(arguments)
呢?
最佳答案
this.initialize.apply(this, arguments)
像这样工作:
this.initialize(arguments[0], arguments[1], arguments[2], ...)
arguments 中的每一项都作为参数传递给 initialize()
这与 just 有很大不同:
this.initialize(arguments)
将 arguments
作为第一个也是唯一一个参数传递给 initialize()
换句话说,如果函数需要一个数组作为第一个参数,使用this.initialize(arguments)
,否则使用.apply()
。
关于javascript - this.initialize(arguments) 与 this.initialize.apply(this, arguments) : what's the difference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183226/