国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關(guān)于JavaScript的面向?qū)ο蠛屠^承有利新手學(xué)習(xí)

2024-05-06 14:20:04
字體:
供稿:網(wǎng)友

這是一篇關(guān)于JavaScript的面向?qū)ο蠛屠^承的文章,寫于1年前,作者循序漸進(jìn),對(duì)想學(xué)習(xí)JavaScript中面向?qū)ο蟮耐瑢W(xué)來說是很有幫助的,因此試著翻譯一下,不妥之處,請(qǐng)指正。原文鏈接Objects and Inheritance in Javascript

雖然一些Javascript用戶可能永遠(yuǎn)也不需要知道原型或面向?qū)ο笳Z言的性質(zhì),但是那些來自傳統(tǒng)面向?qū)ο蟮恼Z言的開發(fā)者使用的時(shí)候會(huì)發(fā)現(xiàn)JavaScript的繼承模型非常的奇怪。而不同的JS框架提供了各自的方法來編寫類面向?qū)ο?class-like)的代碼,這使得JS的面向?qū)ο蟾拥碾y以理解。這樣帶來的結(jié)果是:
1、沒有一個(gè)標(biāo)準(zhǔn)的方法來實(shí)現(xiàn)面向?qū)ο蟆?
2、JS面向?qū)ο蟮牡讓痈拍畈]有得到人們的熟知

原型繼承
原型繼承是一個(gè)非常簡單的概念,它的本質(zhì)是:
1、對(duì)象a繼承自對(duì)象b,就說b是a的原型(prototype)。
2、a繼承了b的所有的屬性,即如果b.x的值為1,那么a.x的值為1
3、a自身的屬性會(huì)重寫b中同名的屬性

讓我們?cè)诰唧w的代碼中看看效果,假設(shè)有一個(gè)John Smith和一個(gè)繼承自他的Jane。
代碼如下:
var john = {firstName: 'John', lastName: 'Smith'};
var jane = {firstName: 'Jane'};
jane.__proto__ = john;

現(xiàn)在,我們稱john是jane的原型(prototype),jane繼承了john的所有的屬性
代碼如下:
jane.lastName
"Smith"http://該屬性繼承自john

jane自身的屬性具有較高的優(yōu)先級(jí),如下
代碼如下:
jane.firstName;//該屬性覆寫了john中的firstName屬性
"Jane"

如果在這之后給john添加一個(gè)屬性,jane也會(huì)動(dòng)態(tài)的繼承該屬性,如下所示
代碼如下:
john.hair = 'brown'; //給john添加一個(gè)新屬性
jane.hair;
"brown"http://結(jié)果表明jane繼承了新添加的屬性

現(xiàn)在,我們假設(shè)jane結(jié)婚了,因此有了一個(gè)新的姓(last name)
代碼如下:
jane.lastName = 'Doe'

該屬性覆蓋了john當(dāng)中的同名的屬性(lastName)
代碼如下:
jane.lastName
"Doe"

但是,如果我們現(xiàn)在刪除jane的lastName
代碼如下:
delete jane.lastName
該屬性的值就會(huì)恢復(fù)為john的值
[code]
jane.lastName
"Smith"

現(xiàn)在,jane也可以繼承自其它的對(duì)象。在這個(gè)鏈中可以有任意多個(gè)繼承,我們將它稱為原型鏈(prototype chain),實(shí)際上,john也有一個(gè)prototype屬性
代碼如下:
john.__proto__;
Object { }

在Firebug的控制臺(tái)中,john.__proto__的值設(shè)為了Object{},但是Object{}代表著Object.prototype這個(gè)對(duì)象——所有對(duì)象的父類。

這就是對(duì)原型繼承的一個(gè)簡要描述。看起來還不錯(cuò),是吧?
但是,實(shí)際上,我們是不能用__proto__的。。。

告訴大家一個(gè)不好的消息......
IE不支持__proto__屬性,實(shí)際上,__proto__并不是ECMAScript規(guī)范中的屬性,而且,Mozilla也打算在火狐瀏覽器以后的的版本中去掉該屬性。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 乡城县| 乌恰县| 永清县| 茂名市| 新乡县| 平湖市| 清苑县| 舒城县| 烟台市| 黄浦区| 句容市| 西吉县| 中方县| 河津市| 洪雅县| 稷山县| 新泰市| 类乌齐县| 蒙山县| 乌拉特中旗| 莆田市| 荥阳市| 道真| 夏津县| 巴楚县| 合阳县| 阆中市| 都昌县| 泗水县| 准格尔旗| 巴林右旗| 调兵山市| 广州市| 乐平市| 和龙市| 屯门区| 宜阳县| 宕昌县| 庆安县| 正阳县| 南江县|