Как может jQuery возвращать массив и при этом оставаться объектом jQuery?

Я пытаюсь воспроизвести структуру объекта jQuery (1.7.1), чтобы лучше понять, как это работает. I есть следующий код:

(function (window, undefined) {

    var document = window.document,
        navigator = window.navigator,
        location = window.location;

    window.myclass = (function () {
        var __con = function () {
            return new __con.fn.init();
        }

        __con.fn = __con.prototype = {
            'init' : function () {
                return this;
            },
            'test' : function () {
                console.log('test1');
                return this;
            }
        }

        __con.fn.init.prototype = __con.fn;

        __con.test = function () {
            console.log('test2');
            return this;
        }

        return __con;
    })();

})(window);

Моя консоль выглядит так:

> myclass().test();
  test1
< __con.fn.__con.init
> myclass.test();
  test2
< function () {

            return new __con.fn.init();

        }

Меня беспокоит то, как jQuery может возвращать массив и при этом оставаться объектом jQuery? jQuery, выполняемый с консоли, может выглядеть примерно так:

> $(document.body)
  [<body>​…​</body>​]
> $(document.body).css('width');
  "1263px"

Фактически, одна вещь, которую я определенно заметил, - это отсутствие < для возвращаемого объекта. Итак, что именно здесь происходит? Я искал по всему Google, чтобы объяснить, как работает jQuery, но безрезультатно . Может быть, я просто неправильно понимаю терминологию, я не уверен. Кажется, я не могу найти какой-либо подробный источник, объясняющий это.

Возможно, мой код просто неполный, но базовая структура, которая у меня есть, такова. что мне удалось извлечь. Пожалуйста, исправьте то, что у меня есть, если оно неверное, неполное или неэффективное, и во что бы то ни стало, пожалуйста, не стесняйтесь доказывать ide полезно прочитать о:

  • передовых методах работы с Javascript
  • о том, как работает jQuery
  • об эффективных классах Javascript
  • Все о структурах объектов Javascript
    • Синглтоны
    • Прототипы
    • Все, что связано с тем, что этот тип структуры называется
9
задан Charles 23 February 2012 в 06:23
поделиться