Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Оптимизация долларовой либы за счет prototype (https://javascript.ru/forum/misc/6107-optimizaciya-dollarovojj-liby-za-schet-prototype.html)

Octane 25.11.2009 20:16

Цитата:

Сообщение от Denisko-Redisko
как я понимаю, проблема (учитывать что this не содержит расширенных методов) будет только у автора фреймворка

Нет, автор фреймворка пусть парится. Я про программистов. Допустим есть метод с callback-функцией, вызывается метод в контексте экземпляра Element, следовательно доступа к обертке не имеет, а значит и callback может выполнить только в контексте Element:
$(…).customMethod1(arg, function () {
    // Проверим, на что там у нас this ссылается
    if (this.customMethod2) {
        // Ага, есть такой метод, можно его дальше использовать.
        // Но в IE то этого метода нет, надо этот момент всегда в голове держать!
    }
});
А если будем передавать эту обертку в IE и вызывать callback в нужном контексте, чтобы были доступны кастомные методы, то доступ к узлу придется осуществлять через this.node, белиберда получается, в нативных метода просто this, в фреймворке $(…), $(…).node и this.node, а еще и просто this не в IE… попробуй разберись.

Цитата:

Сообщение от Denisko-Redisko
Нет, на глазок. Вызов одной лишней функи на один метод, не думаю что это много.

Ага, а если в цикле такой метод, с оберткой и apply внутри, вызывается для целой коллекции элементов, как это часто бывает в фреймворках? Apply имеет очень медленную реализацию в IE6, в IE7 немного побыстрее.

Denisko-Redisko 27.11.2009 16:09

Нда, Вы почти убедили меня :) Конечно, apply-методы с каллбеками не так уж и часто нужны и может можно будет обойтись без них. Надо будет посмотреть :)


Часовой пояс GMT +3, время: 22:24.