原型對(duì)象的理解

當(dāng)創(chuàng)建了一個(gè)新函數(shù)位仁,就會(huì)為這個(gè)函數(shù)創(chuàng)建一個(gè)prototype屬性,這個(gè)屬性指向函數(shù)的原型對(duì)象方椎,原型對(duì)象會(huì)自動(dòng)獲得一個(gè)constructor屬性聂抢,這個(gè)屬性又指回函數(shù)。所以Person.prototype.constructor是指向Person的

1559101671711.png

原型對(duì)象默認(rèn)只會(huì)獲得constructor屬性棠众,其他屬性琳疏、方法是從Object繼承而來(lái)的。

1559102201960.png

當(dāng)new一個(gè)實(shí)例后闸拿,該實(shí)例內(nèi)部的屬性指針 ' [[Prototype]] ' 就會(huì)指向原型對(duì)象空盼,在所有實(shí)現(xiàn)中都無(wú)法訪(fǎng)問(wèn)到[[Prototype]],但可以通過(guò)Object.getPrototypeOf()返回它的值新荤,返回的對(duì)象就是這個(gè)對(duì)象的原型

1559102493293.png

當(dāng)我們?cè)L問(wèn)person1.sayName()時(shí)揽趾,會(huì)先搜索實(shí)例person1有saName屬性嗎?沒(méi)有就會(huì)繼續(xù)搜索苛骨,person1的原型有sayName屬性嗎篱瞎,有的話(huà)就會(huì)讀取保存在原型對(duì)象里的函數(shù)

雖然可以讀取保存在原型中的值,但是不能通過(guò)實(shí)例重寫(xiě)原型中的值痒芝,只會(huì)屏蔽俐筋,例如

function Person(){
}

Person.prototype.name = 'zzx';
Person.prototype.age = 22;
Person.prototype.job = 'Programmer';
Person.prototype.sayName = function(){
    console.log(this.name);
}

var person1 = new Person();
var person2 = new Person();

person1.name = 'yzy';
console.log(person1.name); //'yzy'實(shí)例中的值
console.log(person2.name); //'zzx'原型中的值

即使將person1的name設(shè)置為null,也不會(huì)恢復(fù)指向原型的連接严衬,但是可以使用delete操作符完全刪除實(shí)例屬性澄者,從而重新訪(fǎng)問(wèn)原型中的屬性

使用hasOwnProperty()方法可以檢測(cè)一個(gè)屬性是存在于實(shí)例還是存在于原型中,這個(gè)方法只有給定屬性存在于對(duì)象實(shí)例中時(shí)才會(huì)返回true请琳。

function Person(){
}

Person.prototype.name = 'zzx';
Person.prototype.age = 22;
Person.prototype.job = 'Programmer';
Person.prototype.sayName = function(){
    console.log(this.name);
}

var person1 = new Person();

console.log(person1.hasOwnProperty('name')); //false
person1.name = 'yzy';
console.log(person1.hasOwnProperty('name')); //true
delete person1.name;
console.log(person1.hasOwnProperty('name')); //false

當(dāng)設(shè)置person1.name=‘yzy'后:

1559113158551.png

有兩種方式使用in操作符:?jiǎn)为?dú)使用和在for-in循環(huán)中使用粱挡。單獨(dú)使用時(shí),in操作符會(huì)在通過(guò)對(duì)象訪(fǎng)問(wèn)給定屬性時(shí)返回true单起,無(wú)論該屬性會(huì)存在于實(shí)例還是原型中抱怔。因此配合Object.getOwnProperty()使用就知道該屬性是存在于對(duì)象中還是存在于原型中。

function hasPrototypeProperty(object, name){
    return !object.hasOwnProperty(name) && (name in object);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘀倒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌测蘑,老刑警劉巖灌危,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異碳胳,居然都是意外死亡勇蝙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)挨约,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)味混,“玉大人,你說(shuō)我怎么就攤上這事诫惭∥涛” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵夕土,是天一觀的道長(zhǎng)馆衔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)怨绣,這世上最難降的妖魔是什么角溃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮篮撑,結(jié)果婚禮上减细,老公的妹妹穿的比我還像新娘。我一直安慰自己赢笨,他們只是感情好邪财,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著质欲,像睡著了一般树埠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘶伟,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天怎憋,我揣著相機(jī)與錄音,去河邊找鬼九昧。 笑死绊袋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铸鹰。 我是一名探鬼主播癌别,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹋笼!你這毒婦竟也來(lái)了展姐?” 一聲冷哼從身側(cè)響起躁垛,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎圾笨,沒(méi)想到半個(gè)月后教馆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡擂达,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年土铺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片板鬓。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悲敷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俭令,到底是詐尸還是另有隱情后德,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布唤蔗,位于F島的核電站探遵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妓柜。R本人自食惡果不足惜箱季,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棍掐。 院中可真熱鬧藏雏,春花似錦、人聲如沸作煌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)粟誓。三九已至奏寨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鹰服,已是汗流浹背病瞳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悲酷,地道東北人套菜。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像设易,于是被迫代替她去往敵國(guó)和親逗柴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361