如何在同一javascript对象中进行不同级别的通信
我正在尝试命名我的jQuery应用程序的名称空间 例如:如何在同一javascript对象中进行不同级别的通信,javascript,jquery,namespaces,javascript-objects,Javascript,Jquery,Namespaces,Javascript Objects,我正在尝试命名我的jQuery应用程序的名称空间 例如: var app = { data : { data1: '' }, fn: { setData1: function(value){ app.data.data1 = value } } } 这是可行的,但是有没有更好的解决方案不使用完整路径?此外,对于中等规模的应用程序来说,这是一个好的代码结构吗?Javascript没有语法来指定嵌套文本对象定义中父元素的快捷方式。事
var app = {
data : {
data1: ''
},
fn: {
setData1: function(value){
app.data.data1 = value
}
}
}
这是可行的,但是有没有更好的解决方案不使用完整路径?此外,对于中等规模的应用程序来说,这是一个好的代码结构吗?Javascript没有语法来指定嵌套文本对象定义中父元素的快捷方式。事实上,Javascript另一个对象中的嵌套对象可以在任何地方定义,引用可以分配到对象中,也可以分配到许多对象中,因此就Javascript而言,在运行时没有真正的父对象。Javascript就是不能这样工作 因此,如果要引用不在其下方的对象的另一个元素,则必须使用从对象顶部开始的对象名称的完整路径 至于这是否是一种很好的方法,这完全取决于上下文。乍一看(没有提供其他上下文),我不明白为什么需要对象中的
fn
或data
级别。数据属性和方法可以处于同一级别,这通常不需要添加额外的级别。您会发现不必要的额外级别只会增加代码中的键入量,而不会提高性能。您应该为方法和数据属性指定足够有意义的名称,以便非常清楚它们是什么以及它们的用途。像data1
这样的名称不是一个特别好的例子
此外,通常没有理由为公共data1
属性创建setData1()
方法,但如果将它们放在同一级别,则可以在方法中使用this
指针,如果有人调用app.setData1()
,该指针将设置为app
:
下面的答案解决了你的问题吗?如果是这样,请勾选答案左侧的绿色复选标记以标记接受的答案,向社区表明您的问题已得到回答,然后您和提供答案的人都将获得一些声誉积分,从而在StackOverflow上获得更多特权。如果你的问题仍然没有得到回答,那么请解释你还有什么困惑。
var app = {
data1: ''
setData1: function(value){
this.data1 = value;
}
}