js關於prototype的一點點問題?

時間 2021-06-01 06:19:30

1樓:魯小夫

因為建構函式裡的 this ,亦即 new 出來的例項,是在建構函式體執行之前就生成的,它的 .__proto__ 也是在建構函式體執行之前就已經繫結好了。

因此你在建構函式裡改變 .prototype 的指向,這不影響當前 this.__proto__。

在這個例子裡,事情發生的順序是

生成乙個例項,綁好 .__proto__ = SubType. prototype (空物件)

執行 SubType 函式體,修改 SubType. prototype 的指向為 new SuperType

函式返回這個例項,被賦值到變數 instance1

生成乙個例項,綁好 .__proto__ = SubType. prototype (上面已經產生過的 SuperType 例項)

執行 SubType 函式體,修改 SubType. prototype 的指向為 new SuperType

函式返回這個例項,被賦值到變數 instance2

關於prototype的一些不理解

我只是回答一下為什麼後面建立的例項為什麼沒有x吧。大約的過程是這樣的。function A 此時A物件中已經有A.prototype的屬性。差不多是 A.prototype proto Object 這裡 proto 指向預設物件Object,我們可以稱這個prototype為prototype00...

js很奇怪的問題,關於加法運算的問題?

規則是下面這樣的,另外加上 Number 這樣的強制轉換成number就能得到結果了。至於為什麼會這樣你應該深入了解組織。 小炒黃牛肉 1 2 轉成數字2,所以1 2 等於3 2 1 空格 字串 1轉字串所以等於 1 3 1 空字串轉成數字0 所以等於1 貘吃饃香 只是規範規定 乙個個說 1 2 注...

設定建構函式的 prototype 為 null,例項proto的指向?

紫雲飛 強答一波,雖然題主的問題已經解決了。題主現在看規範最好不要再看 ES5 了,雖然 ES5 的確是簡單點。這個問題的話看 ES5 勉強也夠了,但以後遇到 ES5 之後的知識點該怎麼辦?新規範的話,對應的章節在這裡 ECMAScript 2018 Language Specification。另...