我试图将数组的'push'方法直接传递给另一个数组上的forEach调用:
result = []
l1 = [1]
f = result.push.bind(result)
l1.forEach(f)
结果最终结束:
> result
[ 1, 0, [ 1 ] ]
如果我这样做,而是:
l1.forEach(function (x) { f(x); })
然后一切正常。发生了什么事?
答案 0 :(得分:6)
要了解正在运行的内容,此代码已剪切
[1].forEach(function() {
console.log(arguments);
});
你会收到
[1, 0, Array[1]]
使用以下参数为每个数组元素调用提供给forEach
方法的函数:
所以,似乎你可以通过绑定push
调用特定的数组实例来做你想做的事情......