Skip to content

Commit 8482c89

Browse files
committed
Merge branch 'gh-pages' of github.com:ruanyf/es6tutorial into gh-pages
2 parents b28145e + 5835105 commit 8482c89

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Diff for: docs/proxy.md

+25
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,31 @@ var reverseInt = n => n.toString().split('').reverse().join('') | 0;
272272

273273
pipe(3).double.pow.reverseInt.get
274274
// 63
275+
276+
var pipe = (function () {
277+
return function (value) {
278+
var funcStack = []; // 认为和上面pipe同名不利于理解,换了一个名
279+
var oproxy = new Proxy({} , { // 使用了一个oproxy 存储Proxy的指向
280+
get : function (pipeObject , fnName) {
281+
if (fnName === "get") {
282+
return funcStack.reduce(function (val , fn) {
283+
return fn(val);
284+
},value);
285+
}
286+
funcStack.push(window[fnName]);
287+
return oproxy;
288+
}
289+
});
290+
291+
return oproxy;
292+
}
293+
}());
294+
295+
var double = n => n * 2;
296+
var pow = n => n * n;
297+
var reverseInt = n => n.toString().split("").reverse().join("") | 0;
298+
299+
pipe(3).double.pow.reverseInt.get; // 63
275300
```
276301

277302
上面代码设置Proxy以后,达到了将函数名链式使用的效果。

0 commit comments

Comments
 (0)