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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。