Skip to content

【前端】代理模式 ​

针对一个对象,设置代理控制这个对象的访问,用户需要通过代理访问对象 ​

代码演示 ​

场景 ​

DOM事件代理(委托) ​

webpack devserver proxy 正向(客户端)代理 ​

nginx 反向(服务端)代理 ​

Proxy代理 ​

捕获器不变式 ​

javascript
// 捕获器不变式

const obj = {
  x: 100,
  y: 0,
}

Object.defineProperty(obj, 'y', {
  value: 200,
  writable: false,
  configurable: false,
})

const proxy = new Proxy(obj, {
  get() {
    return 'abc'
  },
})

console.log(proxy.x) // abc
console.log(proxy.y)
// 报错TpeError: 'get' on proxy: property 'y' is a read-only and non-configurable data property on the proxy target but the proxy did not return its actual value (expected '200' but got 'abc')