В JavaScript есть объекты, которые притворяются массивами (или похожими на массивы). Такие объекты arguments
, NodeList
(возвращаются из getElementsByClassName
и т.д.) И объекты jQuery.
Когда console.log
ged, они отображаются как массивы, но это не так. Я знаю, что для того, чтобы быть массивным, объект должен иметь свойство length
.
Итак, я создал "объект" следующим образом:
function foo(){
this.length = 1;
this[0] = "bar";
}
var test = new foo;
Когда я console log(test)
, я получаю (как ожидалось) объект foo
. Я могу "преобразовать" его в массив с помощью
Array.prototype.slice.call(test)
Но я не хочу его преобразовывать, я хочу, чтобы он был подобен массиву. Как создать подобный массиву объект, так что когда он console.log
ged, он появляется как массив?
Я попытался установить foo.prototype = Array.prototype
, но console.log(new foo)
все еще показывает объект foo
, а не массив.