Если вы выполняете console.log($('some selector')) в браузере, он возвращает то, что выглядит как массив (первая строка):

Но обратите внимание, что это не instanceof Array, но на самом деле объект jQuery.
Когда вы выполняете console.dir($('h1')), он показывает, что это фактически объект jQuery.
Вопрос в том, как они делают его похожим на массив в веб-консоли? Я заметил в источнике jQuery здесь они добавляют ссылку на несколько методов массива и объекта и здесь они добавляют toArray (и срез и другие) к объекту jQuery. Является ли веб-консоль каким-то образом проверять эти методы, и если он находит один (toArray, indexOf, slice и т.д.), Он печатает его как массив? Я хотел бы получить это поведение из любого пользовательского объекта, такого как Ember.ArrayProxy. В настоящее время, когда вы регистрируете Ember.ArrayProxy, он показывает > Object или что-то еще, но было бы неплохо показать его как массив.
Любые идеи?