JavaScript | Reflect.set() 方法
JavaScript 中的Reflect.set()方法用于设置对象属性的值。
句法:
Reflect.set(obj, Key, value, receiver)
参数:此方法接受上面提到的四个参数,如下所述:
- Obj:此参数保存目标对象,用于设置属性。
- Key:此参数保存要设置的属性的名称。
- value:此参数保存要设置的值。
- Receiver:它是一个可选参数,如果遇到 setter,则为调用 target 提供 this 的值。
返回值:该方法返回一个布尔值,表示该属性是否设置成功。
异常:当目标不是 Object 时,TypeError 是作为结果给出的异常。
下面的示例说明了 JavaScript 中的 Reflect.set() 方法:
示例 1:
javascript
const object1 = {};
Reflect.set(object1, 'property1', "NULL");
console.log(object1.property1);
const array1 = ['geeks', 'valt', 'geeks'];
Reflect.set(array1, 2, 'for');
console.log(array1[2]);
const val1={};
const val2={};
Reflect.set(val1, 'prop1', 45);
console.log(val1.prop1);
Reflect.set(val2, 'prop2', 567);
console.log(val2.prop2);
javascript
let obj1 = {}
console.log(Reflect.set(obj1, 'prop', 'value') );
console.log(obj1.prop );
// Initializing an array
let arr = ['geek1', 'geek2', 'geek3']
console.log(Reflect.set(arr, 2, 'geek4') );
console.log(arr[2]);
// It can truncate an array.
console.log(Reflect.set(arr, 'length', 1) );
console.log(arr);
// With just one argument, propertyKey
// and value are "undefined".
let obj = {}
console.log(Reflect.set(obj) );
console.log(Reflect.getOwnPropertyDescriptor(
obj, 'undefined'));
输出:
"NULL"
"for"
45
567
示例 2:
javascript
let obj1 = {}
console.log(Reflect.set(obj1, 'prop', 'value') );
console.log(obj1.prop );
// Initializing an array
let arr = ['geek1', 'geek2', 'geek3']
console.log(Reflect.set(arr, 2, 'geek4') );
console.log(arr[2]);
// It can truncate an array.
console.log(Reflect.set(arr, 'length', 1) );
console.log(arr);
// With just one argument, propertyKey
// and value are "undefined".
let obj = {}
console.log(Reflect.set(obj) );
console.log(Reflect.getOwnPropertyDescriptor(
obj, 'undefined'));
输出:
true
"value"
true
"geek4"
true
Array ["geek1"]
true
Object { value: undefined, writable: true, enumerable: true, configurable: true }
支持的浏览器: JavaScript Reflect.set() 方法支持的浏览器如下:
- 谷歌浏览器 49 及更高版本
- 边缘 12 及以上
- 火狐 42 及以上
- Opera 36 及以上
- Safari 10 及更高版本