Как говорится в комментарии Марка Мейера, массивы - это объекты.
В частности, массив - это объект, ключи которого представляют собой строки, представляющие маленькие целые числа.Существует некоторая магия для обработки того, как length
обновляется при добавлении или удалении значений, и как значения удаляются при обновлении length
.Кроме этого, это объект по своей сути.
Итак, в этом коде (укажите такой код в своем вопросе, а не указывайте на внешний сайт):
var a = ['a','b','c'];
var b = Object.assign([], a, ['x']);
все, что происходитявляется то, что он принимает переданное начальное значение []
, а затем добавляет к нему свойства из a
, свойства которых имеют ключи '0'
, '1'
и '2'
с соответствующими значениями 'a'
,'b'
и 'c'
, затем добавляет к нему свойства из ['x']
, единственным из которых является ключ '0'
со значением 'x'
, что дает ['x', 'b', 'c']
.
Так что это простая обработка объекта.
Обратите внимание, что если бы вы сделали
Object.assign([], a, [, 'x']);
, вы бы получили ['a', 'x', 'c']
, а если бы вы сделали
Object.assign([], a, [, , , , 'x']);
, вы бы получили ["a", "b", "c", undefined, "x"]