《深入理解ES6》阅读随笔
这部分内容对笔者来说,理解起来有一些困难,先尝试理解概念,然后再深入理解该章节接下来的内容。
概念
JavaScript 语言引擎中,存在一些已存在但仍未开放给开发者的能力,ES 标准一直在致力于挖掘并标准化这些能力,比如 ES5 中出现的 Object.defineProperty() ,就成功赋予开发者自定义不可以枚举和不可写属性的能力。而在 ES6 中,又新增了代理的能力。
代理是一种可以拦截并改变 JavaScript 底层操作的包装器,可以使用 new Proxy() 来创建其他目标(targat)对象的代理,代理会拦截 JavaScript 引擎内部目标的底层对象操作,当底层操作拦截后会触发响应特定操作的陷阱函数。
反射 API 以 Reflect 的形式出现,代理陷阱可以覆写 Reflect 对象中的方法,每个代理陷阱都对应一个命名和参数都相同的 Reflect 方法。
网友评论