В последнее время, глядя на много кода NodeJS и Javascript, кажется, что аргументы не являются экземпляром Array, но все еще ведут себя как один, поэтому люди делают такие вещи, как Array.prototype.slice.call(arguments, ...)
или [].slice.call(arguments)
, что добавляет многословия и увеличивает препятствия для новичков понимать и т.д. Есть ли причина, почему аргументы не являются экземпляром массива или это только одна из тех плохих частей?
Почему функция Javascript `arguments` не является экземпляром массива в node.js?
Ответ 1
НЕТ. arguments
является автономным объектом, который имеет только свойство length
и возможность использовать []
для его индексации. Но в остальном это просто объект, а не объект Array
.
И да, это действительно одна из плохих частей JavaScript.