我有一个嵌套在另一个对象中的Javascript对象,如下所示:
function Outer() {
this.outerProp;
this.inner = new function() {
this.innerProp;
}
}
我需要创建一个初始化内部对象的方法。我可以将init方法嵌套在内部对象中,或者我可以将它放在内部对象的范围之外:
var outer = new Outer();
outer.inner.init(); // Option 1
outer.initInner(); //Option 2
这些选项中的一个会优先于另一个吗?我倾向于选项1,以便我可以将与outer.inner相关的所有数据和方法捆绑在一起。有没有理由不这样做?
答案 0 :(得分:0)
我倾向于选项1,以便我可以将与outer.inner相关的所有数据和方法捆绑在一起。
是。封装正是这样做的原因,而不是在outer
上使用一些不相关的方法。您甚至可能希望将inner
构造函数从outer
部分中取出,并仅从那里调用它。
… = new function() { … }
Do not use this pattern。使用对象文字或普通IEFE代替。