為了更好地理解這種繼承,必須更深入地了解屬性的訪問細節。假設要查詢物件o的屬性,如果o中不存在x,那麼將會繼續在o的原型物件中查詢屬性x。如果原型物件中也沒有x,但這個原型物件也有原型,那麼繼續在這個原型物件的原型上查詢,直到找到x或者找到乙個原型是null物件為止。可以看到,物件的原型屬性構成了乙個「鏈」
o.x =5; 如果物件沒有x則建立並賦值,如果有,則簡單賦值,如果是從原型那裡繼承的,則覆蓋繼承的同名屬性。如查繼承自乙個唯讀屬性。則賦值操作是不允許的。即使修改也是在原始物件上建立屬性或對自己已有屬性賦值,而不會去修改原型鏈。 在
js中只有在查詢屬性時才會體會到繼承的存在,而設定屬性則和繼承無關。
JavaScript學習筆記 JS的繼承
js的常見繼承 function person function chinese chinese.prototype new person var crr new chinese console.log crr.age crr.name 得到被繼承的屬性 確定原型與例項的關係,instanceof ...
js 例項 物件 繼承 學習筆記
例項 通過new方式例項的物件 原型物件 prototype,在建構函式裡 建構函式和函式 不同的執行方式,this指向有所區別 function foo var foo new foo console.log foo function foo foo.prototype var foo new f...
JS學習 原型 繼承
原型鏈的理解 原型鏈就是 物件.proto proto 這種鏈式的呼叫。本質上是向js中公用屬性組成的物件的一種訪問。聖杯模式 function inherit target,origin f和origin公用乙個原型 f.prototype origin.prototype target去繼承f ...