Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers (en-US)的方法相同。Reflect
不是一个函数对象,因此它是不可构造的。
删除对象中存在的属性
-
作为函数的
delete
操作符,相当于执行delete target[name]
。
检测一个对象是否存在特定属性
const duck = {
name: 'Maurice',
color: 'white',
greeting: function() {
console.log(`Quaaaack! My name is ${this.name}`);
}
}
Reflect.has(duck, 'color');
// true
Reflect.has(duck, 'haircut');
// false
复制代码
返回这个对象自身的属性
Reflect.ownKeys(duck);
// [ "name", "color", "greeting" ]
复制代码
为这个对象添加一个新的属性
Reflect.set(duck, 'eyes', 'black');
// returns "true" if successful
// "duck" now contains the property "eyes: 'black'"
复制代码
获取对象中某个属性
-
获取对象身上某个属性的值,类似于
target[name]。