javascript原型繼承constructor需要注意的地方
關於prototype原型和constructor基本用法這裡就不多介紹了,相關內容可以參閱相關閱讀。
(1).prototype可以參閱javascript prototype原型一章節。
(2).constructor可以參閱javascript constructor一章節。
先來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼function A(){ } function B(){ } A.prototype=new B(); var a=new A(); console.log(a.constructor==A); console.log(a.constructor==B);
按照通常的習慣理解,由於a的建構函式是B(),按說第一個程式碼應該輸出true才對,但是實際情況卻是第二個程式碼輸出true。
實際上建構函式本身並沒有constructor屬性,而是繼承於prototype原型物件,原型物件的constructor是被規定為執行建構函式。
A.prototype=new B(),此程式碼執行以後,A的原型物件被B的物件例項所覆蓋,自然constructor就會指向B了。
所以只要人為的修正一下即可,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼function A(){ } function B(){ } A.prototype=new B(); A.prototype.constructor=A; var a=new A(); console.log(a.constructor==A); console.log(a.constructor==B);
相關文章
- javascript的原型和繼承JavaScript原型繼承
- JavaScript原型和繼承JavaScript原型繼承
- Javascript繼承4:潔淨的繼承者—-原型式繼承JavaScript繼承原型
- 原型,繼承——原型繼承原型繼承
- 【機制】JavaScript的原型、原型鏈、繼承JavaScript原型繼承
- javascript原型鏈繼承的使用JavaScript原型繼承
- JavaScript中的原型和繼承JavaScript原型繼承
- javascript原型鏈及繼承JavaScript原型繼承
- javascript - 繼承與原型鏈JavaScript繼承原型
- 征服 JavaScript 面試:類繼承和原型繼承的區別JavaScript面試繼承原型
- JavaScript原型與繼承的祕密JavaScript原型繼承
- 圖解JavaScript原型鏈繼承圖解JavaScript原型繼承
- Javascript之繼承(原型鏈方式)JavaScript繼承原型
- 從本質認識JavaScript的原型繼承和類繼承JavaScript原型繼承
- 【面試必備】javascript的原型和繼承面試JavaScript原型繼承
- javascript基礎-原型鏈與繼承JavaScript原型繼承
- 白話JavaScript原型鏈和繼承JavaScript原型繼承
- JavaScript學習3:原型和繼承JavaScript原型繼承
- 【翻譯】JavaScript原型繼承工作原理JavaScript原型繼承
- [JavaScript]原型、原型鏈、建構函式與繼承JavaScript原型函式繼承
- 說清楚javascript物件導向、原型、繼承JavaScript物件原型繼承
- JavaScript物件導向 ~ 原型和繼承(1)JavaScript物件原型繼承
- 深入理解JavaScript原型鏈與繼承JavaScript原型繼承
- 深入淺出JavaScript之原型鏈&繼承JavaScript原型繼承
- 一次掌握 JavaScript 原型與繼承JavaScript原型繼承
- 原型和繼承原型繼承
- 物件-原型-繼承物件原型繼承
- JS原型繼承和類式繼承JS原型繼承
- 深入淺出JavaScript之原型鏈和繼承JavaScript原型繼承
- javascript變數宣告需要注意的一個地方JavaScript變數
- Javascript 中實現物件原型繼承的三種方式JavaScript物件原型繼承
- JS原型鏈繼承JS原型繼承
- 原型繼承:子類原型繼承
- JavaScript 型別、原型與繼承學習筆記JavaScript型別原型繼承筆記
- 深入理解javascript原型和閉包(6)——繼承JavaScript原型繼承
- JS的原型鏈和繼承JS原型繼承
- 最簡單的原型繼承原型繼承
- JavaScript的繼承JavaScript繼承