【发布时间】:2012-04-29 01:58:43
【问题描述】:
我正在构建一个应用的命名空间,它看起来如下:
var app = {};
app.utils = {
Expiration: function(){ // contructor
... // some code
},
init: (function(){
app.utils.Expiration.prototype = function(){....}
())
};
但我得到一个错误:TypeError: Cannot read property 'Expiration' of undefined,实际上这是真的,因为 utils 仍在定义中,我知道我可以在 app 范围之外定义原型,我的问题是:我可以在 app 内定义它还是app.utils 具有自执行功能或通过任何其他方式,谢谢。
【问题讨论】:
-
你为什么不想在最初的
util定义之后再定义它? -
这听起来可能很迂腐,但我只是想让我的代码看起来很复杂。
-
@user1108631 - 好吧,Javascript 不允许这样做,所以无论你多么希望它看起来那样,你都不能这样做。
app.utils直到整个声明完成后才被正确定义。 -
这就是我在帖子末尾提到的内容,但阅读其他人对 js 内部的看法总是很好。
标签: javascript object scope prototype