В 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, а не массив.