<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>构造函数</title>
<script>
function Rect(w,h)
{
this.width=w;
this.height=h;
this.area=function()
{
return this.width*this.height;
}
}
var r=new Rect(5,10);
alert(r.area)
</script>
</head>
<body>
</body>
</html>请问我在视频上看的这样正确的应该是求出r.area的值也就是50. 但我为什么弹出的是function()
{
return this.width*this.height;
}这个函数本身啊?还有个问题就是,在上面的构造函数中 定义完this.width=w; this.height=h;之后定义this.area的时候为什么不能直接定义this.area=this.width*this.height啊 视频上非要套个函数也就是这样this.area=function()
{
return this.width*this.height;
}
3 回答
已采纳
一瞬儿光
TA贡献178条经验 获得超70个赞
第一个问题:
this.width=w;//这是属性
this.height=h;//这是属性;
this.area=function(){
return this.width*this.height;
};//这是方法(匿名函数)
var r=new Rect(5,10);//r是对象;
对象的属性访问方式是Obj.属性;
对象的方法访问方式是Obj.方法();
方法必须加()才表示执行。
所以应该是:alert(r.area());
第二个问题:
可以使用this.area=this.width*this.height,甚至可以不要this.area这个方法,直接使用area = r.width*r.height;但是这样做的好处是,如果我们不只是想得到这个面积,而且更多更复杂的运算,那么用一个匿名方法肯定是更方便的。
添加回答
举报
0/150
提交
取消