Skip to content

为何 Proxy 不能被 Polyfill ?

可以被 Polyfill 的有

  • Class 可以用 function 模拟
  • Promise 可以用 callback 模拟

不可 Polyfill 的有

  • Proxy 的功能用 Object.defineProperty 无法模拟

"Proxy" 和 "Polyfill" 是两个不同的概念。

  • Proxy:Proxy 是 ECMAScript 6 引入的一种机制,允许你创建一个对象的代理,用于拦截对该对象的操作。它可以用于实现诸如属性拦截、自定义行为等功能。

  • Polyfill:Polyfill 是用于填充浏览器或运行环境缺少的功能的代码。通常,它用于在旧版本的浏览器或不支持某些新特性的环境中提供相同的功能。

Proxy 不能被 Polyfill 的原因是,Proxy 是一种在语言层面上的特性,而不是单纯的 JavaScript 代码。Polyfill 主要用于填补缺失的 JavaScript API,但它们无法模拟新的语言特性。Polyfill 通常是在 JavaScript 代码中使用其他语言的代码来模拟缺失的功能,但对于 Proxy 这样的语言特性,Polyfill 无法提供等效的替代方案。

简而言之,Proxy 是 JavaScript 语言的一部分,而不是 JavaScript API,因此无法被 Polyfill。

基于 MIT 许可发布