Object.defineProperty()方法直接在对象上定义一个新属性,并返回该对象。要更改标志,我们可以使用Object.defineProperty。我们不能将其改回,因为define属性对不可配置的属性无效。
语法
Object.defineProperty(obj, prop, descriptor)
参数
obj - 要在其上定义属性的对象。
prop - 要定义或修改的属性的名称。
descriptor - 正在定义或修改的属性的描述符。
返回
此方法返回传递给函数的对象。
浏览器支持
| Chrome | yes |
| Edge | yes |
| Firefox | 1.5 |
| Opera | yes |
例子1
const object1 = {}; Object.defineProperty(object1, property1, { value: 22, } ); object1.property1; //throws an error in strict mode console.log(object1.property1);
输出:
22
例子2
const object1 = {}; Object.defineProperty(object1, property1, { value: 42, value: 52, value: 542, }); object1.property1 = 177; // throws an error in strict mode console.log(object1.property1);
输出:
542
例子3
const object1 = {}; Object.defineProperty(object1, property1, { value: 2, value: 4, value: 4+13, }); object1.property1 ; console.log(object1.property1);
输出:
17