【发布时间】:2011-03-02 03:29:02
【问题描述】:
我正在开发一个小库,它正在慢慢地变得不那么小。出于这个原因,我决定将我所有的函数放入myNamespace 以避免丑陋的冲突,并将其拆分为单独的文件,以便更轻松地管理代码。不幸的是,当我这样做时,我破坏了一些以前可以工作的东西——即扩展 Array 对象的功能。那是我最初的方法不起作用:
if(myNamespace === undefined) {
var myNamespace = {};
}
myNamespace.myArray = {
height: 0,
width: 0
};
myNamespace.myArray.prototype = [];
现在当我这样做时:
testArray = myNamespace.myArray;
我好像做不到:
testArray.push("test");
我该如何解决这个问题?将代码封装在命名空间中的最佳方法是什么? 我很确定这只是我混淆了定义/实例化的对象,但我根本不知道正确的方法。
【问题讨论】:
-
你能详细说明到底是什么坏了?您现在发布的代码实际上并没有显示任何实际功能。
-
是的,我可能应该更清楚一点。我将编辑问题。
-
似乎不是命名空间问题,因为无论有没有 myNamespace,该代码都不起作用。前缀。
标签: javascript inheritance namespaces