簡體   English   中英

訪問內部的Javascript對象的屬性

[英]Access Javascript object's property inside decleration

我正在嘗試制作一個具有三個字段的簡單JavaScript對象

  1. 名稱
  2. 姓名
  3. 全名

我做的是這個

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.

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