初始化嵌套的Javascript对象

时间:2014-02-04 01:48:55

标签: javascript oop object methods

我有一个嵌套在另一个对象中的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相关的所有数据和方法捆绑在一起。有没有理由不这样做?

1 个答案:

答案 0 :(得分:0)

  

我倾向于选项1,以便我可以将与outer.inner相关的所有数据和方法捆绑在一起。

是。封装正是这样做的原因,而不是在outer上使用一些不相关的方法。您甚至可能希望将inner构造函数从outer部分中取出,并仅从那里调用它。

… = new function() { … }

Do not use this pattern。使用对象文字或普通IEFE代替。