Mootools 1.6子类初始化方法不称为

时间:2016-02-03 12:46:21

标签: javascript inheritance mootools extends mootools-more

我使用的是mootools 1.6。 我将我的代码基于他们的教程,但是当我尝试运行它时,我的子类的initialize函数没有被调用。相反,它直接进入父类' initialize功能。 我尝试在子类initialize函数内部进行断点,但它确实没有去那里。实际上,我的附加功能也是未定义的。就像只创建父类的功能一样。 :(

这是我的示例代码:
parent.js

   var Parent = new Class({

    initialize: function(){
        alert("parent");
    },
    ...

});


child.js

var Child = new Class ( {
    Extends: Parent, 
    initialize: function () {
        this.parent();
        alert("child");
    },
    ... some additional functions
});


1.)请注意,它们位于不同的js文件中 2.)这些文件由cocos2d-js

预先加载
    ...
    "src/controllers/parent.js",
    "src/controllers/child.js",
    ...

1 个答案:

答案 0 :(得分:2)

我能够解决这个问题。 Mootools没有问题。这就是我使用它的方式。我正在为可能遇到同样问题的人发帖。

我有3个js文件。

parent.js
child.js
orphan.js (calling it orphan hahaha)

这3个文件按顺序添加到project.json。我没有使用orphan.js。我以为我已经从列表中删除了它但我错了。 :(

orphan.js内,是一个类。此类使用与child.js内的类相同的名称。它是空的,只是扩展了父级。发生了什么,它重新定义了对象,因为它是在child.js之后加载的。 我改变了他们的命令,看它是否会使用child.js声明,事实上,确实如此。但那不是解决方案。我只是用它来证明它被重新定义了。解决方案是从源中删除该文件/确保没有类具有相同的名称。

呼。误报。