為什麼給Object prototype加乙個屬性字段,而Object xx能直接訪問到列

時間 2021-06-03 05:38:15

1樓:柴肖鈞

只需要知道js中的物件都是從Object.prototype物件(直接或間接)繼承過來的。

Object,Array,Date等物件繼承了Function.prototype物件,而Function.prototype物件又繼承了Object.

prototype物件。因此在Object.prototype上定義的屬性和方法可以被Object,Array,Date等物件直接訪問。

而在Array.prototype上定義的屬性和方法只能通過Array的例項物件訪問,注意Array物件並沒有繼承Array.prototype物件,而是Array的例項物件繼承了Array.

prototype物件。

2樓:RedHood

首先要先明白,函式物件裡面是有兩個「原型」的,乙個是prototype,而另外乙個是__proto__,前者是在將函式物件當成建構函式使用時附值給其所建立物件的原型,而後者才是函式物件的真正原型。

好吧,知道了這點後就可以解釋一下「Object.prototype.prop=1;alert(Object.

prop);alert(Function.prop);」為什麼結果是都輸出1了。

第乙個語句首先是將Object函式物件的prototype新增屬性prop,注意此時Object函式物件的原型__proto__並沒有新增屬性。第二次呼叫Object.prop的時候,它首先會查詢Object物件裡有沒這個屬性,結果當然沒有,接著它會檢視Object.

__prop__裡有沒有這個屬性,自然也沒有,最後它會檢視Object.__prop__的原型,也即是Object.prototype,裡面有prop屬性,則直接輸出結果,其它的依此類推。。。

說白了,Object.prop能訪問到是因為它從Object的原型__proto__開始查詢,然後查到最後又繞回去了,指回了Object.prototype。

看看下圖就明白了,prototype和__proto__.__proto__其實是乙個玩意。

為什麼給寵物看病更貴?

這個我覺得我還是可以強答一下。我家狗子之前誤食中毒,2天急救加後續一共花了一萬多。我在我的另乙個回答裡也說了,如果不是救命的時刻,不要太相信寵物醫院。我也看了其他答主的回答,其實我覺得覺得給狗看病貴不貴,完全不在於寵物醫院如何收費,也不在於一家醫院投入了多少成本之後,造成了物價高。而是,我們花出去這...

你為什麼給遊戲花錢?

我想 我玩的大多數遊戲其實都能白嫖,但就是需要自己拼命肝。不過我感覺,玩遊戲主要是為了獲得好的遊戲體驗,沒必要讓自己太累,如果能花錢獲得體驗,在自己能力範圍內也不是不行。像我現在玩逆水寒,雖然這遊戲土豪挺多的,但我自己小氪加上偶爾肝一肝也能玩得舒服。 超神小智ZI O 我個人充錢可能就是因為王者玩的...

給領導送禮送什麼好 ?為什麼?

有趣的王老師 給領導送禮這個學問大了。作為乙個在職場混跡了二十年的 過來人 來說說。首先要遵循的原則就是 投其所好 其次就是根據場合 節日 平時走動是否頻繁等因素來考慮。但是千萬千萬不要送土特產!送什麼土雞蛋啊,當地的核桃啊,棗啊什麼的,記住,給領導送禮不是去給領導扶貧!當然如果你的家鄉盛產例如蟲草...