簡體   English   中英

Javascript Object Literal從另一個屬性引用另一個屬性

[英]Javascript Object Literal referring to another property in itself from another property

我有一個對象字面值:

var obj = {
    a : document.getElementById("ex1"),
    b : obj.a.document.getElementsByTagName("div")
};

我遇到了b屬性的問題,出於某種原因它不會讓這種情況發生。 這可能嗎?

你需要兩個步驟:

var obj = {
    a : document.getElementById("ex1")
};

obj.b = obj.a.document.getElementsByTagName("div")

要么:

var temp = document.getElementById("ex1")
var obj = {
    a : temp,
    b : temp.document.getElementsByTagName("div")
};

在定義屬性b ,尚未定義obj 解決該問題的一種方法是使您的屬性成為一個函數,以便在調用之前不對其進行求值。

var obj = {
    a : document.getElementById("ex1"),
    b : function() {
      // This is not evaluated until obj.b() is called
      return obj.a.document.getElementsByTagName("div");
    }
};
obj.b();

如果你真的希望它成為一個屬性,你必須分兩步完成,如Tomasz Nurkiewicz所示

現代的方法是使用getter方法:

let obj = {
  firstName: "A’dab",
  lastName: "Farooqi"
  get fullName() {
    return this.firstName+" "+this.lastName;
  },
}

所以現在你可以寫obj.fullName - 最后不需要括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM