1

私はこのコードを持っています:

(function() {

  function App(elements, options) {

    if (!this instanceof App) return new App(elements, options);

    var that = this;

    return this;

  }

  window.App = App;

})();

App(document.querySelectorAll('.Slider-slide'), {
  interval: 5000
});

私の問題は、の新しいインスタンスを作成することは決してないということです。そのAppため、thisコードのさらに下は常にWindowオブジェクトです。

4

2 に答える 2

6

あなたのif条件が問題です:

if (!this instanceof App)

次のようにする必要があります。

if (!(this instanceof App))

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Tableをご覧ください。

于 2013-10-20T16:31:45.190 に答える