如何在同一个javascript对象中传递不同的级别

时间:2015-09-20 22:39:19

标签: javascript jquery namespaces javascript-objects

我正在尝试命名我的jQuery应用程序。

示例:

var app = {
    data : {
     data1: ''
   },
   fn: {
    setData1: function(value){
      app.data.data1 = value
    }
  }  
}

这是有效的,但有没有更好的解决方案不使用完整路径?而且,对于中型应用程序来说,这是一个很好的代码结构吗?

1 个答案:

答案 0 :(得分:1)

Javascript没有用于指定嵌套文字对象定义中父元素的快捷方式的语法。事实上,Javascript是另一个对象中的嵌套对象可以在任何地方定义,并且引用分配到对象中并且可以分配给许多对象,因此就Javascript而言,在运行时没有真正的父对象。 Javascript只是没有这样做。

因此,如果要引用不在其下方的对象的另一个元素,则必须使用从对象顶部开始的对象名称的完整路径。

至于这是否是一种很好的方法,这完全取决于具体情况。乍一看(并且没有提供其他上下文),我不明白为什么您需要对象中的fndata级别。数据属性和方法可以处于同一级别,通常在不添加额外级别的情况下完成。您会发现,不必要的额外级别只会增加代码中的输入量,并且不会提高性能。您应该为您的方法和数据属性提供足够有意义的名称,以便它们非常清楚它们是什么以及它们的用途。像data1这样的名称并不是一个特别好的例子。

此外,通常没有理由为公共setData1()属性制作data1方法,但如果将它们放在同一级别,则可以使用{{1}方法中的指针,如果有人调用this

,将设置为app
app.setData1()