【发布时间】:2016-06-28 17:50:09
【问题描述】:
我是 IIFE 的新手,正在尝试在 Siungleton JavaScript 类上的 JavaScript 中实现命名空间:
我有一个 JavaScript 类(比如main 类):
var myIIFE = (function () {
var x = null;
//constructor function
var myIIFE = function() {
var a = new IIFE.InsideIIFE(); //says not a constructor
}
myIIFE.prototype = {
//some methods
}
function createIstance() {
return new myIIFE();
}
return {
getInstance: function() {
if (!this.instance) {
this.instance = createInstance();
}
return this.instance;
}
};
})();
然后我有另一个 JavaScript 命名空间类:
myIIFE.InsideIIFE = (function() {
var inside = function() {}
inside.prototype = { //some methods }
return inside;
});
我想在myIIFE 中创建一个myIIFE.InsideIIFE 的对象,这给我一个错误:
myIIFE.InsideIIFE is not a constructor
我做错了吗?或者,如果这是一种正确的方法,那么我应该做出哪些改变。
我尝试使用new this.InsideIIFE() 和InsideIIFE,但它们都不起作用。
编辑:
根据我的分析,我了解到myIIFE(父级)是一个对象,因为它在以下位置返回一个对象:
return {
getInstance: function() {
//method body
}
}
【问题讨论】:
标签: javascript javascript-objects javascript-namespaces