1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

doc(proxy): 修改proxy链式使用的例子

This commit is contained in:
ruanyf 2016-05-18 11:54:20 +08:00
parent 8482c89f41
commit 4ba798a774

View File

@ -249,49 +249,24 @@ arr[-1] // c
```javascript
var pipe = (function () {
var pipe;
return function (value) {
pipe = [];
return new Proxy({}, {
get: function (pipeObject, fnName) {
if (fnName == "get") {
return pipe.reduce(function (val, fn) {
var funcStack = [];
var oproxy = new Proxy({} , {
get : function (pipeObject, fnName) {
if (fnName === 'get') {
return funcStack.reduce(function (val, fn) {
return fn(val);
}, value);
},value);
}
pipe.push(window[fnName]);
return pipeObject;
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
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;