[英]Access Javascript object's property inside decleration
我正在嘗試制作一個具有三個字段的簡單JavaScript對象
我做的是這個
var xyz = {
name: 'ahsan',
fname: 'ashfaq',
fullname : xyz.name + xyz.fname
};
但它不起作用。
內聯對象創建期間,您不能引用腳下的地毯。 如果您確實想要具有這種行為的屬性,請創建一個類或在單獨的語句中進行賦值:
var xyz = {
name: 'ahsan',
fname: 'ashfaq',
fullname : undefined
};
xyz.fullname = xyz.name + xyz.fname;
類的實現:
function XYZ(o) {
this.name = o.name;
this.fname = o.fname;
this.fullname = o.fname + o.name;
}
var xyz = new XYZ({
name: 'ahsan',
fname: 'ashfaq'
});
與其將全名設為字段,不如將其聲明為方法-
var xyz = {
name: 'ahsan',
fname: 'ashfaq',
// Declare a method to return the full name
fullname : function () {
return this.name + this.fname;
}
};
接着 -
xyz.fullname();
會給你全名。
現場演示 。
您不能在定義對象的同一塊中訪問對象的屬性。 在您的示例中,JavaScript將尋找一個名為xyz
已定義對象。 由於該對象目前不可用,因此您只會得到undefined
。
當您從方法訪問屬性時,方案將發生變化。 在這里,您可以使用this
來引用當前對象xyz
。 所以,當你調用這個方法, this
將涉及到xyz
,並在這一點上它的屬性將被定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.