天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

復制代碼 代碼如下:
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),若有疑問或不正之處,歡迎提出指正和討論。

JavaScript技術JavaScript 構造函數 面相對象學習必備知識,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 囯产免费久久久久久国产免费 | 中国字字幕在线播放2019 | 摸老师丝袜小内内摸出水 | 大屁股妇女流出白浆 | 成人国产精品玖玖热色欲 | 国产精品人妻无码久久久蜜桃臀 | 国内精品视频在线播放一区 | 无限资源在线看影院免费观看 | 夜夜澡人人爽人人喊_欧美 夜夜骑夜夜欢 | 国产精品免费观看视频播放 | 午夜精品国产自在现线拍 | 国拍自产精品福利区 | 美女张开腿露出尿口扒开来摸动漫 | 最近中文字幕在线中文视频 | 国产精品色无码AV在线观看 | 欧美四虎精品二区免费 | 人人啪日日观看在线 | 日韩精品无码久久一区二区三 | 中文字幕 亚洲 有码 在线 | 无套内谢大学生A片 | 日韩精品a在线视频 | 色爱区综合激情五月综合激情 | 日本美女色 | 亚洲国产高清在线观看视频 | 精品一区二区三区AV天堂 | 嗨嗨快播电影 | 狠狠婷婷综合久久久久久 | 亚洲欧美国产视频 | 久久精品国产欧美成人 | 99久久夜色精品国产亚洲AV卜 | 久久夜色精品国产亚州AV卜 | 麻豆国产精品va在线观看约 | 999久久国产精品免费人妻 | 草民电影网午夜伦理电影网 | 欧美三级aaa| 老师你奶真大下面水真多 | sihu国产精品永久免费 | 亚洲精品久久久一区 | 美女扒开尿口让男生添动态图 | 免费xxx成年大片 | 成人毛片一区二区三区 |