📜  JavaScript Reflect defineProperty()方法

📅  最后修改于: 2020-10-25 11:51:44             🧑  作者: Mango

JavaScript Reflect.defineProperty()方法

静态方法Reflect.defineProperty()允许精确添加或修改对象上的属性。 Reflect.defineProperty()方法返回一个布尔值,该布尔值指示该属性是否已成功定义。

句法

Reflect.defineProperty(target, propertyKey, attributes)

参数

target:是定义属性的目标对象。

propertyKey:这是要定义或修改的属性的名称。

属性:它是正在定义或修改的属性的属性。

返回值:

此方法返回一个布尔值,该值指示该属性是否已成功定义。

异常处理

如果目标不是Object,则此异常将引发TypeError。

例子1

const u = {};
const result = Reflect.defineProperty(u, "p",
{ value : 6,});
console.log( u ); 

输出:

Object {  }

例子2

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

例子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