第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

原型繼承 - 寫(xiě)

原型繼承 - 寫(xiě)

德瑪西亞99 2019-05-21 13:54:43
原型繼承 - 寫(xiě)所以我有這兩個(gè)例子,來(lái)自javascript.info:例1:var animal = {  eat: function() {    alert( "I'm full" )    this.full = true  }}var rabbit = {  jump: function() { /* something */ }}rabbit.__proto__ = animal rabbit.eat() 例2:function Hamster() {  }Hamster.prototype = {  food: [],  found: function(something) {    this.food.push(something)  }}// Create two speedy and lazy hamsters, then feed the first onespeedy = new Hamster()lazy = new Hamster()speedy.found("apple")speedy.found("orange")alert(speedy.food.length) // 2alert(lazy.food.length) // 2 (!??)從示例2開(kāi)始:當(dāng)代碼到達(dá)時(shí)speedy.found,它找不到found屬性speedy,因此它爬上原型并在那里進(jìn)行更改。這就是為什么food.length兩只倉(cāng)鼠都是平等的,換句話(huà)說(shuō),它們有相同的胃。據(jù)我所知,在編寫(xiě)和添加一個(gè)不存在的新屬性時(shí),解釋器將上升到原型鏈,直到找到屬性,然后更改它。但是在示例1中還發(fā)生了其他事情:我們運(yùn)行rabbit.eat,這會(huì)發(fā)生變化rabbit.full。full屬性無(wú)處可尋,所以它應(yīng)該上升到原型鏈(對(duì)象??),好吧,我不知道這里發(fā)生了什么。在此示例中full,rabbit創(chuàng)建并更改了屬性,而在第一個(gè)示例中,它上升了原型鏈,因?yàn)樗也坏綄傩?。我很困惑,也看不出為什么?huì)這樣。
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

原型不是實(shí)例化對(duì)象的每個(gè)實(shí)例。

Hamster.prototype.food = []

Hamster的每個(gè)實(shí)例都將共享該數(shù)組

如果您需要(在這種情況下),每個(gè)Hamster的食物集合的單獨(dú)實(shí)例,您需要在實(shí)例上創(chuàng)建屬性。例如:

function Hamster() {
  this.food = [];}

要回答關(guān)于示例1的問(wèn)題,如果它沒(méi)有在原型鏈中的任何位置找到該屬性,則會(huì)在目標(biāo)對(duì)象上創(chuàng)建該屬性。


查看完整回答
反對(duì) 回復(fù) 2019-05-21
  • 2 回答
  • 0 關(guān)注
  • 764 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)