繁体   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