首页 > 代码库 > 《es6标准入门》chapter11中关于Proxy的一个错误例子的纠正
《es6标准入门》chapter11中关于Proxy的一个错误例子的纠正
在原书第二版的p120,这里有一个使用Proxy实现管道化调用的例子,想法很好,但是代码有问题,下面是更正之后的代码。
由于我是在node环境下运行,所以我把几个全局函数定义到global内了,如果是在浏览器下测试,则可以保留原有这部分内容。
var pipe=(function(){ var pipe; return function(value){ pipe=[]; return new Proxy({}, { get(target, fnName, receiver){ console.log(‘enter get, fnName ‘ + fnName.toString()) if(fnName == ‘get‘){ console.log(‘begin to calc the value‘); return pipe.reduce(function(val, fn){ return fn(val); }, value); } pipe.push(global[fnName]); console.log(pipe, pipe.length); console.log(target); //此处应该是要返回proxy对象,而不是原来的target对象 return receiver; } }); }}());//此处是为了兼容node环境而做的修改global["double"] = n =>n*2;global["pow"] = n =>n*n;global["reverseInt"] = n=>n.toString().split(‘‘).reverse().join(‘‘) | 0;console.log(pipe(3).double.pow.reverseInt.get)
《es6标准入门》chapter11中关于Proxy的一个错误例子的纠正
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。