繁体   English   中英

如何在同一个 javascript 对象中进行不同级别的通信

[英]How to communicate different levels in the same javascript object

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

例子:

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

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

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

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

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

另外,一般没有理由为一个公共的data1属性创建一个setData1()方法,但是如果你把它们放在同一层,你可以在方法中使用this指针,如果有人的话,它会被设置为app调用app.setData1()

var app = {
     data1: ''
     setData1: function(value){
          this.data1 = value;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM