揭秘Object.defineProperty()的本质
作者:互联网
定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
例子:
const object1 = {}; Object.defineProperty(object1, 'property1', { value: 42, writable: false }); object1.property1 = 77; // throws an error in strict mode console.log(object1.property1); // expected output: 42
分析:首先,如果object1这个对象不展开的话,控制台打印出来的结果会以“{}”的形式存在,什么属性都没有,而展开它才能看得到。而且,property1这个属性也不能直接看到value值,需要点击“(...)”才能看得到。最后,当直接修改object1这个对象的property1的值的时候,控制台还会报错,而它原本的value值也并不会发声变化。这是因为property1是object1这个对象的扩展属性。
标签:property1,Object,value,object1,defineProperty,揭秘,属性 来源: https://www.cnblogs.com/gyx19930120/p/15567479.html