5

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)代わりに書いてみませんか?

4

1 に答える 1

8
this.initialize.apply(this, arguments)

次のように機能します。

this.initialize(arguments[0], arguments[1], arguments[2], ...)

引数の各項目は、パラメータとして渡されますinitialize()

これは、次のものとは大きく異なります。

this.initialize(arguments)

最初で唯一のパラメータargumentsとしてinitialize()

つまり、関数が最初のパラメーターとして配列を想定している場合は を使用しthis.initialize(arguments)、それ以外の場合は を使用します.apply()

于 2013-03-03T06:54:36.397 に答える