Я пытаюсь вернуть запрос как объект, в моей первой попытке я попробовать метод Object.create
Как jQuery быстро клонировать его методы?
var ElementArray = {
someMethod : myMethod,
....
}
var addMethods = function(elements) {
var obj = Object.create(ElementArray);
obj[0] = elements;
return obj;
};
var getId = function(query) {
return addMethods(doc.getElementById(query));
};
я сразу же обнаружил, что это было медленнее, чем JQuery (шипение), особенно на светлячок. Проблемы с firefox, где, вероятно, можно использовать обертки между отсеками (see bug here), но я все еще был довольно недоволен.
Я также попытался использовать прототип вместо
var ElementArray = function(){};
ElementArray.prototype.someMethod = someMethod;
....
var addMethods = function(elements) {
var obj = new ElementArray();
....
};
Немного лучше на темэ, но по-прежнему очень медленно на светлячок.
Так что мой вопрос в том, как это делает jQuery (sizzle) и другие библиотеки || Каков самый быстрый способ вернуть объект с свойствами экземпляра 1-2? (Все остальное может быть просто ссылки)
JQuery использует 'пр ototype' для его методов. Таким образом, при создании нового объекта, отличного от системы, устанавливающей ссылку на прототип, не будет никакой работы. – jfriend00
@ jfriend00 Поиск через sizzles github repo Я не нахожу метод прототипа (я искал) '.prototype' ... Я что-то упустил? – Burdock
Внутренне он использует '.fn', но это псевдоним' .prototype', и это не на самом деле 'jQuery', а на другом объекте. – jfriend00