我正在尝试制作一个具有三个字段的简单 JavaScript 对象
- 姓名
- 名称
- 全名
我做的是这个
var xyz = {
name: 'ahsan',
fname: 'ashfaq',
fullname : xyz.name + xyz.fname
};
但它不工作。
我正在尝试制作一个具有三个字段的简单 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
,此时将定义其属性。