簡體   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