簡體   English   中英

綁定Array.push

[英]Binding Array.push

我試圖將數組的'push'方法直接傳遞給另一個數組上的forEach調用:

result = []
l1 = [1]
f = result.push.bind(result)
l1.forEach(f)

結果最終結果是:

> result
[ 1, 0, [ 1 ] ]

如果我這樣做,而是:

l1.forEach(function (x) { f(x); })

一切正常。 到底是怎么回事?

要了解正在運行的內容,此代碼將被剪切

[1].forEach(function() {
    console.log(arguments);
});

你會收到的

[1, 0, Array[1]]

使用以下參數為每個數組元素調用提供給forEach方法的函數:

  1. 數組元素
  2. 元素位置
  3. 數組本身

所以,似乎你不能通過綁定對特定數組實例的push調用來做你想做的事情......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM