[英]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 不能那樣工作。
因此,如果要引用對象的另一個不在其下方的元素,則必須使用從對象頂部開始的對象名稱的完整路徑。
至於這是否是這樣做的好方法,那完全是特定於上下文的。 乍一看(並且沒有提供其他上下文),我不明白為什么您需要對象中的fn
或data
級別。 數據屬性和方法可以處於同一級別,並且通常無需添加額外級別即可完成。 您會發現不必要的額外級別只會增加代碼中的輸入量,而不會提高性能。 您應該為您的方法和數據屬性提供足夠有意義的名稱,以便非常清楚它們是什么以及它們的用途。 像data1
這樣的名稱並不是一個特別好的例子。
另外,一般沒有理由為一個公共的data1
屬性創建一個setData1()
方法,但是如果你把它們放在同一層,你可以在方法中使用this
指針,如果有人的話,它會被設置為app
調用app.setData1()
:
var app = {
data1: ''
setData1: function(value){
this.data1 = value;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.