2015-10-06 25 views
0

它是如何工作的?我通過這個documentation,但仍不清楚據我它的功能了新的數組應該在指數無4被推和長度應該是3,那麼,他們是如何與長度追加6這個內部工作如何在JavaScript中使用原型合併數組?

var a = [4,5,6]; 
var b = [7,8,9]; 
Array.prototype.push.apply(a, b); 

能有人在解釋更好的方式,因爲我已經通過了幾個職位,但仍然不清楚它的工作。 More Info

+1

'a'將是工作的值(內部被稱爲'this'),'b'將是一個數組形式的參數列表,所以每個一個數組中的元素被推入第一個數組中。 'apply'是執行函數並將該值設置爲某個指針的一種方式,因此它可以充當它的作用。 – somethinghere

+0

注意,如果你想連接兩個數組,你不需要這個技巧,你可以使用'a = a.concat(b)',這個更清晰並且可能更快。 – Touffy

回答

1

Array.prototype.push.apply(a,b);

在這條語句中,Array對象的push方法被調用,保持Array'a'的上下文和Array'b'作爲Array原型的函數push的參數數組。

因此,此語句只是將數組'b'的元素推入數組'a'。並返回結果數組的長度,在這種情況下將爲6。

試着用b交換a並記錄它們。

對於任何疑問,請參閱https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

0

應用運行函數的第一個參數的情況下,另一個參數是將要傳遞給函數的參數列表。在你的情況下,它類似於調用 a.push(7,8,9)

相關問題