麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript 構造函數 面相對象學習必備知識

2024-05-06 12:37:04
字體:
來源:轉載
供稿:網友
代碼如下:
function A(x)
{
this.x = x;
}
var obj = new A(5);
alert(obj.x);

這段代碼十分簡單,但是我們重要的是看到了一個十分驚訝的結果,obj被我們賦予了一個屬性x,就如同我們在C#中使用某個類的實例的時候一樣。那么這個屬性是怎么樣產生的呢?

關鍵語句:this.x=x。這句話就是進行一個屬性的申明與賦值,這里,我們肯定會問到,this是什么?為什么可以使用this.x來進行申明與賦值屬性呢?

其實this代表的就是我們剛剛實例化出來的obj,就相當于我們使用obj去調用了構造函數A里面的屬性、方法等等。

那么,我們怎么樣去在構造函數中定義一個方法呢?

代碼如下:
function A(x,y)
{
this.x = x;
this.y = y;
A.prototype.FunX = function(){alert(x)};
A.prototype.FunY = function(){alert(y)};
}
var obj = new A(5,10);
alert(obj.x);
alert(obj.y);
obj.FunX();
obj.FunY();

執行的結果十分簡單,彈出5、10、5、10的結果,可以看到
代碼如下:
A.prototype.FunX = function(){alert(x)};
A.prototype.FunY = function(){alert(y)};

這兩句代碼定義了兩個方法,分別是FunX和FunY。那么,如果現在出現了一種情況,如果我們需要臨時的給A函數添加方法怎么辦呢?

代碼如下:
function A(x,y)
{
this.x = x;
this.y = y;
}
A.prototype.FunX = function(){alert("5")};
var obj = new A(5,10);
alert(obj.x);
alert(obj.y);
obj.FunX();
A.prototype.FunY = function(){alert("10")};
obj.FunY();

運行這段代碼,我們可以看到,彈出的結果還是和以前的結果一樣,但是我們將兩個方法都定義在了外邊,而且方法FunY是定義在實例化之后的,那么這里大家看出來了什么沒?很顯然,在我們使用obj.FunY()語句時候,代碼會重新的去構造一下obj,然后再來執行此方法,那么如果代碼改成這樣?
代碼如下:
obj.FunY();
A.prototype.FunY = function(){alert("10")};

很顯然,FunY()就不會去執行方法了。

下一遍,將會說一下關于JavaScript的構造函數與原型(prototype),若有疑問或不正之處,歡迎提出指正和討論。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 毛片免费观看完整版 | 日日做夜夜操 | 91色琪琪电影亚洲精品久久 | 久久久久久久久成人 | 热re91久久精品国产99热 | lutube成人福利在线观看污 | 国产精品久久久久久久久久电影 | 91 视频网站 | av成人一区二区 | 99riav国产在线观看 | 国产精品爆操 | 欧美 videos粗暴| 鲁丝片一区二区三区免费入口 | 久久久www成人免费精品 | 国产一区二区三区四区精 | 成人一级黄色片 | 九九精品免费 | 成人男女啪啪免费观看网站四虎 | 国产精品成人一区二区三区吃奶 | 国产精品视频一区二区三区四区五区 | 国产一区二区三区四区在线 | www.99热视频| 成人午夜高清 | 久久精片 | 午夜小视频免费观看 | 国产精品久久久久久久模特 | 国产精品久久久久久久久久 | 香蕉久久久久 | 国产精品自拍啪啪 | 欧美巨根 | 久久免费视频一区 | 日韩毛片免费观看 | 亚洲精品一区二区三区免 | 欧美成人免费在线视频 | 全黄性性激高免费视频 | 91午夜视频 | 一级α片免费看刺激高潮视频 | 成年性羞羞视频免费观看无限 | 久久小视频 | 国产精品一区网站 | 一本精品999爽爽久久久 |