为什么这个代码在我执行console.log(square.area)时返回NaN;而不是36?
var calcArea1 = function(){
this.area = this.sideLength * this.sidelength;
};
var square = new Object();
square.sideLength = 6;
square.area = 0;
square.changeArea = calcArea1;
square.changeArea();
console.log(square.area);
答案 0 :(得分:3)
你的功能有错字:
var calcArea1 = function(){
this.area = this.sideLength * this.sideLength;
}; // ^^
JavaScript区分大小写,因此大写和小写名称被视为不同。
因为在这种情况下this.sidelength
的结果为undefined
,所以当你尝试使用NaN(非数字)时(例如,将其与此处相乘)与另一个数字相比,它会产生NaN(非数字)。