1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-25 03:02:21 +00:00

Merge branch 'gh-pages' of github.com:ruanyf/es6tutorial into gh-pages

This commit is contained in:
ruanyf 2016-05-18 11:51:34 +08:00
commit 8482c89f41

View File

@ -272,6 +272,31 @@ var reverseInt = n => n.toString().split('').reverse().join('') | 0;
pipe(3).double.pow.reverseInt.get pipe(3).double.pow.reverseInt.get
// 63 // 63
var pipe = (function () {
return function (value) {
var funcStack = []; // 认为和上面pipe同名不利于理解换了一个名
var oproxy = new Proxy({} , { // 使用了一个oproxy 存储Proxy的指向
get : function (pipeObject , fnName) {
if (fnName === "get") {
return funcStack.reduce(function (val , fn) {
return fn(val);
},value);
}
funcStack.push(window[fnName]);
return oproxy;
}
});
return oproxy;
}
}());
var double = n => n * 2;
var pow = n => n * n;
var reverseInt = n => n.toString().split("").reverse().join("") | 0;
pipe(3).double.pow.reverseInt.get; // 63
``` ```
上面代码设置Proxy以后达到了将函数名链式使用的效果。 上面代码设置Proxy以后达到了将函数名链式使用的效果。