从宏观上看,代理是真实 JavaScript
对象的 透明抽象层。代理可以定义包含 捕获器 的处理程序对象,而这些捕获器可以拦截绝大部分 JavaScript
的基本操作和方法。
与代理如影随形的Reflect
反射 API,则封装了一整套与捕获器拦截的操作相对应的方法。
代理的应用场景是不可限量的。开发者使用它可以创建出各种编码模式,比如(但远远不限于)跟踪属性访问、隐藏属性、阻止修改或删除属性、函数参数验证、构造函数参数验证、数据绑定,以及可观察对象。
从宏观上看,代理是真实 JavaScript
对象的 透明抽象层。代理可以定义包含 捕获器 的处理程序对象,而这些捕获器可以拦截绝大部分 JavaScript
的基本操作和方法。
与代理如影随形的Reflect
反射 API,则封装了一整套与捕获器拦截的操作相对应的方法。
代理的应用场景是不可限量的。开发者使用它可以创建出各种编码模式,比如(但远远不限于)跟踪属性访问、隐藏属性、阻止修改或删除属性、函数参数验证、构造函数参数验证、数据绑定,以及可观察对象。