老师,Reflect.defineProperty()定义的属性是不是只读的?
来源:2-48 Reflect

程序媛_Lisa
2020-10-26
老师,我用Reflect.defineProperty()定义的属性无法用Reflect.deleteProperty()来删除,所以猜测是否这样定义的属性未只读属性
var obj = { x: 1, y: 2 };
Reflect.defineProperty(obj, ‘z’, {value: 3}); // true
obj; // {x: 1, y: 2, z:3}
Reflect.deleteProperty(obj, ‘y’); // true
Reflect.deleteProperty(obj, ‘z’); // false
obj; // {x: 1, z: 3}
写回答
1回答
-
慕粉1926294646
2020-11-06
这里面有个概念就对象属性描述符的概念,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty,你用Reflect.defineProperty(obj, ‘z’, {value: 3}); 定义的时候没有设置其他描述符,只设置了 value,没有设置 configurable(默认 false,不能删除),你增加这个配置并改为 true 就可以了
00
相似问题