Ni14
2016-12-09 16:31:22
<!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
提交
取消