今天看书,有个设置js对象数据属性的方法,Object.defineProperty。能够修改对象属性的特性,也能定义对象的新属性。于是,我试了下这个:

通过defineProperty定义的属性name,为什么直接输出和for-in遍历都得不到呢。Enumerable也设置的为true,而且直接输出--31行,也看不到name属性的值。但是直接读取对象的属性person.name则能够读取到设置的值。
各位大佬,求教!

通过defineProperty定义的属性name,为什么直接输出和for-in遍历都得不到呢。Enumerable也设置的为true,而且直接输出--31行,也看不到name属性的值。但是直接读取对象的属性person.name则能够读取到设置的值。
各位大佬,求教!