日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > JavaScript 原型繼承之基礎機制

JavaScript 原型繼承之基礎機制

來源:程序員人生   發布時間:2014-01-03 23:50:32 閱讀次數:2670次

由于語言設計上的原因,JavaScript 沒有真正意義上“類”的概念。而通常使用的 new 命令實例化對象的方法,其實是對原型對象的實例化。這一語言功能的本質依賴于 JavaScript 特有的原型鏈(prototype chain)模式。

所以嚴格意義上說,JavaScript 是基于原型的面向對象語言。也就是說,每個實例對象都具有一個原型。對象從該原型中繼承屬性和方法。

1、構造函數
利用構造函數,可以簡單地創建對象。構造函數內的 this 關鍵字指向實例對象本身:

function People(name){
this.name = name;
}

使用 new 運算符和構造函數創建實例對象:

var people = new People('小明');
console.log(people.name); //小明

但如果創建了兩個實例,這兩個實例之間無法直接共享屬性和方法:

var people1 = new People('小明');
var people2 = new People('小王');
people1.sex = 'male';
console.log(people2.sex); //undefined

也就是說對象一旦被實例化,其屬性方法都獨立存在,對某個屬性的修改不會影響到其他實例。

2、Prototype
于是就有了 prototype 屬性,這個屬性是在生成實例對象時自動創建的。它本身又是一個對象,擁有能夠在實例間共享的屬性和方法。而實例本身的屬性和方法,則包含在構造函數中。換句話說,構造函數內部的屬性和方法,在經過實例化后都成為了本地的屬性和方法,而原型(prototype)中的屬性和方法在實例中只是一種引用,因此能夠被多個實例共享。

還是剛才那個構造函數,現在為它增加 prototype 屬性:

People.prototype.sex = 'female';
//或者寫成 People.prototype = {sex: 'female'};
console.log(people1.sex); //male
console.log(people2.sex); //femalePeople

構造函數的 prototype 屬性參數會直接影響到 people1 和 people2 兩個實例。

但為什么 people1.sex 輸出 male 呢?這是由于在 JavaScript 中,原型關系以遞歸形式存在。對象的原型也是一個對象,而原型的本身也可能具有一個原型。原型的最高層級是全局的 Object 對象。

這就是說,一旦 people1.sex 被設置為 male 后,它在原型中對應的值就無法被暴露出來。假如 people1.sex 本身沒有值,才會從構造函數的 prototype 屬性中讀取,以此類推一級一級向上查找,直到 Object 對象。

注:使用 “null” 給對象賦值,可以銷毀自定義對象,釋放內存資源。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美中文在线观看 | 精品一区在线 | 久久久久久久一区 | 国产欧美高清在线观看 | 国产精品久久久久久亚洲毛片 | 中文字幕91爱爱 | www.色网 | 超碰娱乐 | 日韩a级毛片免费观看久久 精品一区二区在线播放 | 欧美成人免费在线视频 | 成人精品在线播放 | 日日夜夜综合 | 性一交一无一伦一精一爆 | 免费一二三区 | 国产福利专区 | 国产在线观看免费 | 成人天堂资源www在线 | 亚洲视频在线观看免费 | 97精品视频在线播放 | 欧美日本国产在线 | 精品成人一区二区三区 | 国产麻豆一区 | 一级片a | 麻豆传媒在线播放 | 韩国免费a级毛片 | 中文日韩 | 精国品产一区二区三区有限公司 | 国内最真实的xxxx人伦 | 色www永久免费视频首页在线 | 欧美国产日韩视频 | 国产日产久久高清欧美一区 | 国产精品第2页 | 91精品国产综合久久福利软件 | 免费日韩电影 | 污视频在线观看免费 | 久久久蜜臀国产一区二区 | 成人性生交大片 | 天天艹视频 | 一区二区三区视频在线播放 | 成人a网 | 亚洲av毛片一区二区三区电影 |