0

我有一个奇怪的问题。我有一个像这样扩展 createjs.Container 的对象:

(function() {
  var Door = function(label, color) {
    this.initialize(label, color);
  }
  var M = Door.prototype = new createjs.Container(); // inherit from Container
  M.Container_initialize = M.initialize;
  M.initialize = function() {
    console.log(this);
  }
  window.Door = Door;
}(window));

每当我尝试在任何地方创建此对象的新版本时,console.log 输出每次都会给我相同的对象。所以如果我这样做:

var door1 = new Door();
var door2 = new Door();

我得到以下控制台输出:

Door {id: 10, _matrix: c, children: Array[0], Container_initialize: function, initialize: function…}
Door {id: 10, _matrix: c, children: Array[0], Container_initialize: function, initialize: function…}

...两者都有相同的ID。

我不确定我在这里做错了什么会导致这种情况发生?

4

1 回答 1

0

我在 M.initialize 方法中遗漏了一行:

this.Container_initialize();

解决了问题!

于 2013-10-07T10:54:12.587 回答