【问题标题】:Initializing nested Javascript objects初始化嵌套的 Javascript 对象
【发布时间】:2014-02-04 01:48:54
【问题描述】:

我有一个 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,以便我可以将与 external.inner 相关的所有数据和方法捆绑在一起。有什么理由不这样做吗?

【问题讨论】:

    标签: javascript oop object methods


    【解决方案1】:

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

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

    … = new function() { … }
    

    Do not use this pattern。请改用对象文字或普通的IEFE

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多