
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
#每天一个知识点# ES6 Reflect
Reflect.ownKeys()和Object.keys()
- Reflect.ownKeys(object) 包括可枚举和不可枚举的属性名,也包括 Symbol 类型的属性名
- Object.keys(object) 不包括不可枚举属性、Symbol 类型的属性以及原型链上的属性
delete 操作符和 Reflect.deleteProperty
对于对象属性的删除操作,行为完全一致,Reflect.deleteProperty(object,property),会更高阶更面向对象,保持统一性
Reflect.has() 和 Object.prototype.hasOwnProperty()
- Reflect.has(object,property) 会检查自身和原型链
- hasOwnProperty() 检查自身
- eslint 会报错Do not access Object.prototype method ‘hasOwnProperty‘ from target object no-prototype-builtins,不要使用对象原型上的方法,因为原型的方法可能会被重写
- Reflect.ownKeys(object) 包括可枚举和不可枚举的属性名,也包括 Symbol 类型的属性名
- Object.keys(object) 不包括不可枚举属性、Symbol 类型的属性以及原型链上的属性
对于对象属性的删除操作,行为完全一致,Reflect.deleteProperty(object,property),会更高阶更面向对象,保持统一性
- Reflect.has(object,property) 会检查自身和原型链
- hasOwnProperty() 检查自身
- eslint 会报错Do not access Object.prototype method ‘hasOwnProperty‘ from target object no-prototype-builtins,不要使用对象原型上的方法,因为原型的方法可能会被重写
展开
评论
1
赞了这篇文章