[英]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.