📜  JavaScript | Reflect.defineProperty() 方法

📅  最后修改于: 2022-05-13 01:56:27.608000             🧑  作者: Mango

JavaScript | Reflect.defineProperty() 方法

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

Reflect.defineProperty(target, propertyKey, attributes) 

参数:此方法接受三个参数,如上所述,如下所述:

  • target:此参数定义属性和目标对象。
  • propertyKey:此参数是要定义或修改的属性的名称。
  • 属性:此参数是正在定义或修改的属性的属性。

返回值:该方法返回一个布尔值,指示属性是否定义成功。
异常:当目标不是对象时,TypeError 是作为结果给出的异常。
下面的示例说明了 JavaScript 中的 Reflect.defineProperty() 方法:
示例 1:

javascript
const object1 = {};
 
if (Reflect.defineProperty(object1, 'geeks1', {value: 42})) {
  console.log('geeks1 assigned');
   
} else {
  console.log('problem created by  geeks1');
}
 
console.log(object1.geeks1);
  
const object2 = {};
const object3 = {};
(Reflect.defineProperty(object2, 'geeks2', {value: 97})) 
if (Reflect.defineProperty(object3, 'geeks3', {value: 23})) { 
  console.log('geeks3 assigned'); 
} else { 
  console.log('problem created by geeks3'); 
} 
console.log(object3.geeks3); 
console.log(object2.geeks2);


javascript
const a = {}; 
const result = Reflect.defineProperty(a, "geek1", 
{ value : 19, }); 
 
console.log(a);
console.log( result);  
 
const b = {}; 
const result1 = Reflect.defineProperty(b, "geek2", 
{ value : 56, 
  writable: false
} 
); 
console.log(b ); 
console.log(result1);
 
let obj = {}
Reflect.defineProperty(obj, 'x', {value: 71})  // true
console.log(obj.x)


输出:

"geeks1 assigned"
42
"geeks3 assigned"
23
97

示例 2:

javascript

const a = {}; 
const result = Reflect.defineProperty(a, "geek1", 
{ value : 19, }); 
 
console.log(a);
console.log( result);  
 
const b = {}; 
const result1 = Reflect.defineProperty(b, "geek2", 
{ value : 56, 
  writable: false
} 
); 
console.log(b ); 
console.log(result1);
 
let obj = {}
Reflect.defineProperty(obj, 'x', {value: 71})  // true
console.log(obj.x)

输出:

Object {  }
true
Object {  }
true
71

支持的浏览器: JavaScript Reflect.defineProperty() 方法支持的浏览器如下:

  • 谷歌浏览器 49 及更高版本
  • 边缘 12 及以上
  • 火狐 42 及以上
  • Opera 36 及以上
  • Safari 10 及更高版本