美好的一天。 我面临着一个相当简单的麻烦。我希望社区能帮助我。
这就是我所拥有的: 我有两个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声明相当庞大,并且程序员不会把它全部放在那里。
那么,你通常如何解决这个问题呢?谢谢。
答案 0 :(得分:1)
唯一的选择是将它附加到窗口对象,说明你可以将它嵌套在同一个变量下:
var MYNAMESPACE = window.MYNAMESPACE = {}
MYNAMESPACE.code = "hello"
请确保您没有点击正在使用的名称(如文档或类似名称)
答案 1 :(得分:1)
我担心你不能这样做。
您可以随时将其附加到除直接全局命名空间之外的其他对象,但如果您希望能够在第二个脚本中使用它,则需要在某处将其公开。最终,它需要可以从全局对象访问。
对不起。