возможности; Мне было просто интересно, как jQuery проявил себя как массив, а он не один.

нтересно, как это возможно, что объекты jQuery отображаются в виде массива в журнале консоли инструментов разработчика в Chrome.

Например. если я выполню$('<a>')то, что я вижу в журнале консоли:

[<a>​</a>​]

Но следующие утверждения являются ложными:

var a = $("<a>");

Array.isArray(a);   // false
a instanceof Array; // false

Я попытался изменить jQuery и посмотреть, что произойдет, и одна вещь, которая удивляет, это то, что удалениеlength из функции jQuery удаляет обозначение массива:

length: 0, // commenting this line removes array notation

Вместо этого он отображается как (стрелка является твердой, чтобы развернуться):

> jQuery.jQuery.fn.jQuery.init

Но если я попытаюсь создать свой собственный конструктор, который должен отображаться в нотации массива, он не будет работать:

var test = function() { this.length = 0 };

new test();

// Logged (arrow is same one as before):
// > test

Поэтому мне интересно, что в коде jQuery позволяет инструментам разработчика показывать экземпляры в виде массива. Какое свойство / функция / вещь добавляется в jQuery, что позволяет инструментам разработчика обрабатывать его как массив при отображении экземпляра?

Ответы на вопрос(1)

Ваш ответ на вопрос