Reflect
Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers的方法相同。Reflect不是一个函数对象,因此它是不可构造的。
描述
与大多数全局对象不同Reflect并非一个构造函数,所以不能通过new运算符对其进行调用,或者将Reflect对象作为一个函数来调用。Reflect的所有属性和方法都是静态的(就像Math对象)。
Reflect 对象提供了以下静态方法,这些方法与proxy handler methods的命名相同.
其中的一些方法与 Object相同, 尽管二者之间存在 某些细微上的差别 .
const obj = {
name: 'zce',
age: 18
}
// console.log('name' in obj)
// console.log(delete obj['age'])
// console.log(Object.keys(obj))
// 判断一个对象是否存在某个属性,和 in 运算符 的功能完全相同
console.log(Reflect.has(obj, 'name'))
// 作为函数的delete操作符,相当于执行 delete target[name]。
console.log(Reflect.deleteProperty(obj, 'age'))
// 返回一个包含所有自身属性(不包含继承属性)的数组。
// (类似于 Object.keys(), 但不会受enumerable影响).
console.log(Reflect.ownKeys(obj))
参考文献:
Web 开发技术 | MDN