js中關於原型和原型鏈有 __proto__ 、prototype、constructor 頻頻出現在面試題中,但是記得多了反而容易記混。 這裡簡單總結下每個屬性的使用場景,方便記憶。 對象和函數都有 __proto__,對象的 __proto__指向構造函數的prototype,構造函數的__pr ...
js中關於原型和原型鏈有 __proto__ 、prototype、constructor 頻頻出現在面試題中,但是記得多了反而容易記混。
這裡簡單總結下每個屬性的使用場景,方便記憶。
- 對象和函數都有 __proto__,對象的 __proto__指向構造函數的prototype,構造函數的__proto__指向 Function.prototype
- 對象和函數都有constructor,對象的 constructor指向構造函數,構造函數的constructor指向 Function
- 函數才有 prototype
- 函數的prototype又是一個對象,但是 Funtion.prototype 不是對象!!!
- 特殊記憶:typeof Function.prototype==="function"
- Object因為O大寫,可以看出本質也是一個構造函數
- __proto__ 指向一個原型對象,構造函數.prototype.__proto__ === Object.prototype
- 特殊記憶:Object.prototype.__proto__===null,因為 Object.prototype 為js 原型鏈的頂端。