0

再会。我面临一个相当简单的麻烦。我希望社区能帮助我。

这就是我所拥有的:我有两个 JavaScript 文件:第一个是 Parent 类,第二个是 Child 类。现在我想从全局命名空间中隐藏这些定义。当然,我可以将它们全部放入单个 JavaScript 文件中,并将其包装成一个像这样的自调用匿名函数,这样就只有一个子对象的实例(我想要实现的):

var myChildObj = (function(){

    var ParentClass = function() {};    
    ParentClass.prototype = { 
        //some data
    };

    function extendsClass(childClass, parentClass, isRewrite) {
        for(var property in parentClass.prototype) {
            if (isRewrite || 
               (!isRewrite && 
                !isDefined(childClass.prototype[property]))) {                         
                childClass.prototype[property] = parentClass.prototype[property];
            }
        }

        childClass.prototype.parent =  parentClass.prototype;
    }

    var ChildClass = function() {}; 
    ChildClass.prototype = {
        //some data
    }

    extendsClass(ChildClass, ParentClass, false);
    return new PhotoGallerySingle();    
})();

但是 ParentClass 声明相当大,把它全部放在那里对程序员来说不是那么友好。

那么,您通常如何解决此类问题呢?谢谢你。

4

2 回答 2

1

唯一的选择是将它附加到窗口对象,也就是说你可以将它嵌套在同一个变量下:

var MYNAMESPACE = window.MYNAMESPACE = {}
MYNAMESPACE.code = "hello"

只需确保您没有点击正在使用的名称(例如文档或类似名称)

于 2012-10-15T18:17:01.710 回答
1

恐怕你做不到。

您总是可以将它附加到其他对象而不是直接全局命名空间,但是如果您希望能够在您的第二个脚本中使用它,您需要在某处将其公开。最终,它需要可从全局对象访问。

对不起。

于 2012-10-15T18:19:13.050 回答