[
]
这是一个基于 ES3 的Proxy构造器polyfill,支持 IE8 和 Node.js 等。
参照 ECMAScript 标准编写,无外部依赖。
由于ES3的限制,该polyfill只支持有限的'traps'代理:
- apply
- construct
Proxy.revocable方法也被支持,但只限于调用上面的'traps'。
安装
用法
- 浏览器:
<script src="path/to/es6-proxy-polyfill.js" type="text/javascript"></script>
<script type="text/javascript">
var target = function(){/* code */};
var handler = {/* code */};
var proxy = new Proxy(target, handler);
</script>
- Node.js:
require('es6-proxy-polyfill');
var target = function(){/* code */};
var handler = {/* code */};
var proxy = new Proxy(target, handler);
注意
- 在ES6中,对
Proxy对象属性的访问将会被传递给目标对象。为了模拟这个特性,polyfill会尝试使用Object.assign方法从目标对象复制属性,因此最好先加载一个Object.assign的polyfill;
<script src="path/to/babel-polyfill.js" type="text/javascript"></script>
<script src="path/to/es6-proxy-polyfill.js" type="text/javascript"></script>
- 代码已经在Node.js 0.10.48 和 IE8 测试过,而且它也应该能够运行在其他环境下;
- 当自身属性被访问时,被撤销的
Proxy对象不会抛出错误。