JavaScript中的Reflect.defineProperty()方法用于允许精确添加或修改对象上的属性。此方法返回一个布尔值,该值指示该属性是否已成功定义。
用法:
Reflect.defineProperty(target, propertyKey, attributes)
参数:此方法接受上述和以下所述的三个参数:
- target:此参数定义属性和目标对象。
- propertyKey:此参数是要定义或修改的属性的名称。
- Attributes:此参数是正在定义或修改的属性的属性。
返回值:此方法返回一个布尔值,该值指示该属性是否已成功定义。
异常:当目标不是对象时,TypeError是作为结果给出的异常。
以下示例说明了JavaScript中的Reflect.defineProperty()方法:
范例1:
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);
输出:
"geeks1 assigned" 42 "geeks3 assigned" 23 97
范例2:
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()方法支持的浏览器:
- 谷歌浏览器
- IE浏览器
- Firefox
- Opera
- Safari
- Edge
相关用法
- Javascript padStart()用法及代码示例
- Javascript Int8Array from()用法及代码示例
- Javascript Reflect.get()用法及代码示例
- Javascript Reflect.has()用法及代码示例
- Javascript Unit16Array.from()用法及代码示例
- Javascript handler.get()用法及代码示例
- Javascript Int16Array from()用法及代码示例
- Javascript Uint8Array.from()用法及代码示例
- Javascript hasOwnProperty()用法及代码示例
- Javascript compile()用法及代码示例
- Javascript Uint32Array from()用法及代码示例
- Javascript Array from()用法及代码示例
- Javascript Array.from()用法及代码示例
- Javascript handler.has()用法及代码示例
- Javascript exec()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | Reflect.defineProperty() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。