我试图将数组的'push'方法直接传递给另一个数组上的forEach调用:
result = []
l1 = [1]
f = result.push.bind(result)
l1.forEach(f)
Run Code Online (Sandbox Code Playgroud)
结果最终结果是:
> result
[ 1, 0, [ 1 ] ]
Run Code Online (Sandbox Code Playgroud)
如果我这样做,而是:
l1.forEach(function (x) { f(x); })
Run Code Online (Sandbox Code Playgroud)
一切正常.到底是怎么回事?
要了解正在运行的内容,此代码将被剪切
[1].forEach(function() {
console.log(arguments);
});
Run Code Online (Sandbox Code Playgroud)
你会收到的
[1, 0, Array[1]]
Run Code Online (Sandbox Code Playgroud)
forEach使用以下参数为每个数组元素调用提供给方法的函数:
所以,似乎你无法通过绑定push对特定数组实例的调用来做你想做的事情......
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |