js中__proto__和prototype的區別和關系?
喵啊喵啊喵
2016-10-09 21:36:12
TA貢獻57條經驗 獲得超235個贊
構造函數原型對象是一個引用類型 ,是一個對象,它保存在內存中的一個堆中, prototype指向這個堆,new出來的實例用_proto_也指向這個堆,并且通過這個_proto_來實現對堆的引用實現屬性的添加。但是雖然此時兩者恒等,因為都指向這個堆,但是兩者并不是賦值的關系。兩者并沒有什么關系,他們只是通過這個堆讓我們覺得似乎兩者是一樣的。比如現在假如讓原型函數的prototype指向一個新對象,但是_proto_還是指向原來那個堆,這個實例屬性是不變的。
TA貢獻32條經驗 獲得超105個贊
1. __proto__是每個對象都有的一個屬性,而prototype是函數才會有的屬性。
2. __proto__指向的是當前對象的原型對象,而prototype指向的,是以當前函數作為構造函數構造出來的對象的原型對象。
舉報