【发布时间】:2015-07-12 15:33:28
【问题描述】:
我正在尝试分析经典模型的流程并测试不同的方法是否可行。首先,我已经实例化了ans1,然后我尝试将函数ans1.area 分配给ans2,相信它会通过引用但是当我尝试在ans2 中调用area() 时它不起作用 - ans2.area(),不应该是传递函数的引用吗?然而
当我将ans1 分配给ans2 并尝试调用ans2.area() 时,它与ans1 具有相同的值。你能帮忙并详细说明一下吗?谢谢。
function Rectangle(length,width){
this.length = length;
this.width = width;
}
Rectangle.prototype.perimeter= function(){
var perimeterAns = this.length + this.length + this.width + this.width;
return perimeterAns;
};
Rectangle.prototype.area= function(){
var areaAns = (2*this.length + 2*this.width);
return areaAns;
};
var ans1 = new Rectangle(5,6);
ans1.area(); // 22
// not working
var ans2 = ans1.area
ans2(); // Nan
ans2 = ans1;
ans2.area(); // 22;
【问题讨论】:
-
var ans2 = ans1.area 缺少括号。应该是 ans1.area()
-
var ans2 = ans1.area 怎么样?为什么当我这样做时 - var ans2 = ans1.area ans2(); // Nan - 它返回 NaN。你能解释一下吗
-
也不是更多
this.length*this.width -
下面的答案很好...仅供参考,您还可以使用
call()或apply()明确指定this变量,例如var areaMethod = ans1.area; areaMethod.call(ans1); -
哈哈无视公式。
标签: javascript object prototype