返回JavaScript中的包装对象
我一直在研究下划线z.chain()函数。我知道它返回一个包装对象,并且在调用该对象上的方法之前,将继续返回包装对象。然而,我希望能够在纯javascript中实现这一点,但我不确定如何在vanilla js中返回包装好的对象 您可以创建一个包含函数的“包装对象”,该函数返回此值:返回JavaScript中的包装对象,javascript,underscore.js,Javascript,Underscore.js,我一直在研究下划线z.chain()函数。我知道它返回一个包装对象,并且在调用该对象上的方法之前,将继续返回包装对象。然而,我希望能够在纯javascript中实现这一点,但我不确定如何在vanilla js中返回包装好的对象 您可以创建一个包含函数的“包装对象”,该函数返回此值: function _(xs) { return { map: function(f) { xs = xs.map(f) return this }, filter:
function _(xs) {
return {
map: function(f) {
xs = xs.map(f)
return this
},
filter: function(f) {
xs = xs.filter(f)
return this
},
value: function() {
return xs
}
}
}
var result = _([1,2,3]).map(function(x) {
return x + 1
}).filter(function(x) {
return x < 4
}).value()
console.log(result) //=> [2, 3]
函数(xs){
返回{
地图:功能(f){
xs=xs.map(f)
还这个
},
过滤器:功能(f){
xs=xs.filter(f)
还这个
},
值:函数(){
返回xs
}
}
}
var result=uz([1,2,3]).map(函数(x){
返回x+1
}).过滤器(功能(x){
返回x<4
}).value()
console.log(结果)/=>[2,3]
您需要一些东西来包装它。您需要创建一个类,将值存储在其中,然后让每个方法返回这个值代码>修改存储值时。