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