我有这段代码
let person=new Object({
fname: 'Uday',
sname: 'Kiran',
getFName: function(){
return this.fname;
}
});
Object.defineProperty(person,'getSName',
{
value: function(){return this.sname;},
writable: false,
enumerable: true,
configurable: true
});
let personInherited=Object.create(person);
这是可能的,我可以在Object.defineProperty
的帮助下覆盖getSName属性,尽管它在writable: false
中定义为person
。
Object.defineProperty(personInherited,'getSName',
{
value: function(){
return this.sname.toUpperCase();
},
writable: true,
enumerable: true,
configurable: true
});
但是我无法像下面那样覆盖getSName属性。
personInherited.getSName=function(){
return this.sname;
}
有人可以解释使用Object.defineProperty
创建属性和使用personInherited.getSName