📅  最后修改于: 2020-10-25 11:51:44             🧑  作者: Mango
静态方法Reflect.defineProperty()允许精确添加或修改对象上的属性。 Reflect.defineProperty()方法返回一个布尔值,该布尔值指示该属性是否已成功定义。
Reflect.defineProperty(target, propertyKey, attributes)
target:是定义属性的目标对象。
propertyKey:这是要定义或修改的属性的名称。
属性:它是正在定义或修改的属性的属性。
此方法返回一个布尔值,该值指示该属性是否已成功定义。
如果目标不是Object,则此异常将引发TypeError。
const u = {};
const result = Reflect.defineProperty(u, "p",
{ value : 6,});
console.log( u );
输出:
Object { }
const u = {};
const su = Reflect.defineProperty(u, "p",
{ value : 3,
writable: true,
//write
// enumerable: true,
//configurable: true
}
);
console.log( u );
console.log( su);
输出:
Object { }
true
const object1 = {};
const object2 = {};
(Reflect.defineProperty(object2, 'property2', {value: 12}))
if (Reflect.defineProperty(object1, 'property1', {value: 42})) {
console.log('property1 created!');
} else {
console.log('problem creating property1');
}
console.log(object1.property1);
console.log(object2.property2);
输出:
"property1 created!"
42
12