有人可以帮助我理解为什么在将对象文字的两个属性添加在一起作为第三个属性的定义时会得到 NaN 吗?
这是一个代码示例,我也创建了一个 Codepen。
(http://codepen.io/Tristan-zimmerman/pen/cvJFE)
objLiteral = {
numberOne : 50,
numberTwo : 80,
mathStuff : this.numberOne + this.numberTwo,
};
console.log(objLiteral.mathStuff);
//Logs NaN.
当我使用构造函数实例化一个新对象时,我得到了正确的数学:
function objConstructor () {
this.numberOne = 50;
this.numberTwo = 80;
this.mathStuff = this.numberOne + this.numberTwo;
}
var objConstructed = new objConstructor();
console.log(objConstructed.mathStuff);
//Logs 130.
正如您在 Codepen 示例中看到的那样,我有一个对象文字,然后将属性附加到结果框架中的正文中。我还从 Object 文字中记录了“this”,以确保范围是正确的,并且实际上是在引用该对象。