差异b / w Object.defineProperty与直接将属性分配给对象

时间:2017-03-29 14:16:45

标签: javascript node.js

我有这段代码

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

直接分配属性之间的区别

0 个答案:

没有答案