Reflect也是ES6新增的一个API,他是一个对象,字面意思是反射。
那么这个Reflect有什么用?
它主要提供了很多操作Javascript对象的方法,有点类似Object中操作对象的方法,比如Reflect.getPrototypeOf(target)类似于Object.getPrototypeOf()。
比如Reflect.defineProperty(target,propertyKey,attributes)类似于Object.defineProperty()。
如果我们有Object可以做这些操作,那么为什么还要用Reflect这样的新增对象并且在里面还添加相关的方法?
这是因为在早期的ECMA规范中没有考虑到这种对对象本身的操作如何设计会更规范,所以将这些API放在了Object上。但是Object作为一个构造函数,这些操作实际上放到它身上并不合适。
另外还包含一些类似于in,delete操作,让JS看起来比较奇怪,所以在ES6中新增了Reflect,让我们这些操作都集中到了Reflect对象上,另外在使用Proxy时,可以做到不直接操作原对象
那么Object和Reflect对象之间的API关系,可以查看MDN文档
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
友链已经添加好了,欢迎回访哈
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持一下
马克吐温的作品就很经典,小时候很爱看
文章不错支持一下,非常喜欢
文章不错非常喜欢,支持