我試圖實現原型繼承,但我不理解它的行爲。更新JavaScript中的原型屬性
請看下面的例子:
var config = {
writable: true,
enumerable: true,
configurable: true
};
var defineProperty = function(obj, name, value) {
config.value = value;
Object.defineProperty(obj, name, config);
}
var man = Object.create(null);
defineProperty(man, 'sex', 'male');
var yehuda = Object.create(man);
defineProperty(yehuda, 'firstName', 'Yehuda');
defineProperty(yehuda, 'lastName', 'Katz');
當我訪問yehuda.sex
回報male
這是正確的,但是當我嘗試更新到底發生了什麼這是一個新的屬性sex
對yehuda
創造價值。
一個可能的解決方案是直接訪問原型屬性(Object.getPrototypeOf(yehuda).sex = 'female'
),但這意味着我需要知道對象屬於哪個屬性。
你知道'man.sex ='male''就夠了:-) –