javascript继承-“…未定义”。名称空间问题?

javascript继承-“…未定义”。名称空间问题?,javascript,Javascript,我有一个名为ModuleSelector的“类”,它从服务器获取模块列表,并将它们显示为可单击的切换按钮。我试图创建一个名为Module的类,它扩展了ToggleButton类,并且仅对ModuleSelector可见 我遇到的问题是线路: Module.prototype=新的切换按钮;给出错误:未定义ToggleButton 我不明白为什么找不到它,因为我可以在模块函数中创建ToggleButton的新实例 ModuleSelector.js ToggleButton.js 是的,你把它包装

我有一个名为ModuleSelector的“类”,它从服务器获取模块列表,并将它们显示为可单击的切换按钮。我试图创建一个名为Module的类,它扩展了ToggleButton类,并且仅对ModuleSelector可见

我遇到的问题是线路:

Module.prototype=新的切换按钮;给出错误:未定义ToggleButton

我不明白为什么找不到它,因为我可以在模块函数中创建ToggleButton的新实例

ModuleSelector.js

ToggleButton.js


是的,你把它包装在一个函数{}中;这基本上把它放在一个不同的名称空间中。只需将它们包装在一个函数中。。。或者干脆把包装纸一起去掉。这就是我的解决方案。你确定ToggleButton.js是在ModuleSelector.js之前加载的吗?我会检查的。谢谢伊万,这就是问题所在!傻咪咪,我明白了。我错过了窗户。请注意,对于createjs来说,它实际上很重要。
(function() {

    function Module(id,name){
        this.moduleID = id;
        this.moduleName = name;
        this.topics = [];

        this.addTopic = function(topic){
            this.topics.push(topic);
        }
    }

    Module.prototype = new ToggleButton();
    Module.prototype.constructor = Module;

    var ModuleSelector = function (id) {
        this.initialize(id);
    };

    var p = ModuleSelector.prototype = new createjs.Container();
    p.Container_initialize = p.initialize;
    p.initialize = function (id) {
        this.Container_initialize();
        //.....
    };

    window.ModuleSelector = ModuleSelector;
}());
(function() {
    var ToggleButton = function(text) {
        this.initialize(text);
        //....code
    };

    var p = ToggleButton.prototype = new createjs.Container();
    p.Container_initialize = p.initialize;
    p.initialize = function(text) {
        this.Container_initialize();
    };

    window.ToggleButton = ToggleButton;
}());