當一個物件已實例化後,如想使其具有新的屬性,是否只能透過prototype去新增?為什麼不能修改構造函數?
原因是否是,當一個物件已實例化之後,在其屬性與方法的存續上就跟建構子無關了?
大家讲道理2017-05-19 10:31:49
prototype被稱為原型鏈。
1、一個物件實例化後,是可以直接Object.name新增的。至於透過原型鏈添加的,是新增的公有屬性,其他透過相同類別實例的物件都可以存取。
2、實例化後的物件是無法存取原型鏈,原型鏈只有Class才會有,並且,原型鏈的屬性和方法是透過Class.prototype來新增的。建構函數也屬於原型鏈方法,你可以修改你透過實例後所獲得的建構函數,不過無法影響Class的建構函數,並且會隨著Class.prototype的改變而改變。
至於實例化後的物件想要使用原型鏈中定義的屬性與方法,可以直接Object.name來進行使用。
你可以去看一下有關原型鏈的知識,百度一搜尋有很多。
本人也是新人,不足之處,望指出。