es6-proxy

//利用 Proxy,可以将读取属性的操作(get
var
pipe = function (value){ let funStack = [] var oproxy = new Proxy({}, { get: function(pipeObject, fnName){ console.log("方法名称----》", fnName, pipeObject, funStack) if(fnName === "get"){ return funStack.reduce(function(val, fn){ console.log("val--->", val, "fn------->", eval(fn+"("+val+")"), typeof fn) return eval(fn+"("+val+")") // return val },value) } funStack.push(fnName) return oproxy } }) return oproxy; } var double = n => n * 2; var pow = n => n * n; var reserveInt = n => n.toString().split("").reverse().join("") | 0; var num = pipe(3).double.pow.reserveInt.get; console.log(num) //63

 

posted @ 2021-03-02 18:52  不夜候  阅读(31)  评论(0)    收藏  举报