Reflect.defineProperty()
JavaScript Reflect.defineProperty()方法
静态方法
Reflect.defineProperty()允许在对象上精确添加或修改属性。 Reflect.defineProperty()方法返回一个布尔值,指示该属性是否已成功定义。
语法
Reflect.defineProperty(target, propertyKey, attributes)
参数
target:它是定义属性的目标对象。
propertyKey :这是要定义或修改的属性的名称。
attributes:它是要定义或修改的属性的属性。
返回值:
此方法返回一个布尔值,指示是否成功定义了属性。
异常
如果目标不是对象,则此异常将引发TypeError。
示例1
const u = {};
const result = Reflect.defineProperty(u, "p",
{ value : 6,});
console.log( u );
输出:
示例2
const u = {};
const su = Reflect.defineProperty(u, "p",
{ value : 3,
writable: true,
//write
// enumerable: true,
//configurable: true
}
);
console.log( u );
console.log( su);
输出:
示例3
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