Я много раз встречался с термином «Array-Like Object» в javascript. Что это ? В чем разница между ним и нормальным массивом? В чем разница между объектами, подобными массиву, и нормальным объектом?javascript - Разница между массивом и объектами, подобными массиву
ответ
Что это?
Объект, который имеет длину свойство неотрицательного Integer, и, как правило некоторые индексированные свойства. Например
var ao1 = {length: 0}, // like []
ao2 = {0: 'foo', 5: 'bar', length: 6}; // like ["foo", undefined × 4, "bar"]
Вы можете конвертировать массив как объекты их массива коллег с использованием Array.prototype.slice
var arr = Array.prototype.slice.call(ao1); // []
Что разница между ним и обычным массивом?
Это не построен Array
или с массива буквального[]
, и поэтому (как правило) не наследуют от Array.prototype
. Значение length не будет автоматически автоматически обновляться.
ao1 instanceof Array; // false
ao1[0] = 'foo';
ao1.length; // 0, did not update automatically
Что разница между массивом типом объектом и обычным объектом?
Нет никакой разницы. Даже нормальный Массивы являются объекты в JavaScript
ao1 instanceof Object; // true
[] instanceof Object; // true
'и так (обычно) не будет наследовать от Array.prototype' Поразмыслить над частью« обычно »? Разве это не массив, а массив, если он наследует от 'Array.prototype'? – Taurus
@Taurus Если вы настроили прототип в пути ES5- для какого-либо пользовательского объекта, вы получите Array-like 'Array.isArray (Object.create (Array.prototype)); // false. Если вы используете ES6 + 'class A2 extends Array' и' super', вы получите Array 'Array.isArray (новый A2); // true' –
@Paul_S.Я рассматриваю это как нечто большее с методом 'isArray', поскольку он использует внутреннее свойство' [[class]] 'за кулисами, чем доказательство того, что объект с' Array.prototype' является массивом, скорее, объект, который имеет доступные ему методы массива (через наследование от 'Array.prototype', это также означает, что он имеет свойство length) и численно индексируется не как массив, а массив. – Taurus
Я думаю, в ES6, что-то массив типа, если он итерацию (имеет [Symbol.iterator]
свойство).
'Объект, подобный массиву', является фактическим названием существа, которое существует. Он определил свойства, которые могут быть применены конкретно к объектам, построенным и используемым определенным образом. – monsto
- 1. Разница между нечеткими подобными и более подобными этому?
- 2. Разница между массивом и массивом?
- 3. Разница между массивом JavaScript каждый и некоторые
- 4. Разница между «новым массивом (..)» и «[..]» в JavaScript?
- 5. Разница между объектами ссылочного типа JavaScript и обычными объектами
- 6. В чем разница между объектами jquery и объектами javascript?
- 7. Разница между взаимозаменяемыми объектами и неизменяемыми объектами
- 8. Разница между массивом и массивом в Flex
- 9. Разница между динамическим массивом и нормальным массивом
- 10. В чем разница между массивом и массивом?
- 11. Разница между объектами и Runnable
- 12. Разница между индекторами и массивом объектов?
- 13. разница между массивом и таНос
- 14. разница между массивом и TimeSeries
- 15. Разница между массивом и коллекциями
- 16. разница между списком и массивом
- 17. Разница между массивом и указателем
- 18. Разница между массивом и списком
- 19. Разница между ArrayList.TrimToSize() и массивом?
- 20. разница Тип между подобными декларациями ArrayList
- 21. Разница между массивом инициализациями
- 22. Где использовать = как оператор? Разница между подобными и = как?
- 23. Разница между функцией и объектами в javascript отсутствует?
- 24. Разница между свойствами объекта JavaScript с кавычками и неотображаемыми объектами
- 25. В чем разница между строкой и массивом символов в Javascript?
- 26. разница между курсором и объектами связи
- 27. Разница между классами, объектами и экземплярами
- 28. Разница между ls() и объектами() в R
- 29. Разница между POCO и объектами самоотслеживания
- 30. Разница между объектами flash и flex?
обратитесь пожалуйста? –
Один - это массив, а другой - объект. У одного есть методы массива, другой может или нет. –
Объект, подобный массиву, представляет собой объект, который вы можете выполнять итерацией с использованием регулярных индексов цикла 'for' и чисел. Объекты, подобные массиву, возвращаются из многих встроенных методов DOM, таких как 'getElementsByClassName()'. – Teemu