gpt4 book ai didi

javascript - this.initialize(arguments) 与 this.initialize.apply(this, arguments) : what's the difference?

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:39 27 4
gpt4 key购买 nike

如果您查看 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com