Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2012, 14:32
Новичок на форуме
Отправить личное сообщение для mrgordon Посмотреть профиль Найти все сообщения от mrgordon
 
Регистрация: 04.06.2012
Сообщений: 8

Ребята помогите правильно реализовать цепочки функций как в jquery
Всем привет
Помогите пожалуйста реализовать цепочки функций как в jquery
$().$().$().$().$().............

грамотно
как лучше делать через прототипы или без них?
напишите пожалуйста примерчики цепочек какие у вас есть

Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2012, 15:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Вариант без повтора "return this"
function $(a) { this[a] = a; }

// методы хранятся тут
var props = {
    "foo": function(){ alert("foo"); },
    // что-то возвращает
    "bar": function(){ alert("bar"); return ":)"; },
    "etc": function(a){ alert("etc"); return this[a]; }
};

// магическая оборачивалка
var i, wrap = function(prop) {
    return function(){
        var res = props[prop].apply(this, arguments);
        return res === undefined ? this:res;
    };
};

// обрабатываем свойства магической оборачивалкой
for(i in props) if(props.hasOwnProperty(i)) {
    $.prototype[i] = wrap(i);
}

// и используем.
alert( new $().foo().bar() );
alert( new $("HEYA!").etc("HEYA!") );

Последний раз редактировалось melky, 04.06.2012 в 15:20.
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2012, 15:28
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

$('my').load(); Как сделать, чтобы это заработало
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2012, 17:26
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Octane, Вы удалили 2 поста выше? okay

Сообщение от Maxmaxmахimus
я если честно не понял, можешь обяснить зачем так надо?
чтобы каждый раз не писать "ретурн зиз". Вообще, разница будет чувствоваться только в масштабах квери - там много таких методов, и в каждом будет return this ?

но есть минус - придётся как-то распознавать процедуру от функции. я подумал, что это монжно сделать, не возвращая из процедуры ничего. (т.е. undefined). но тут может возникнуть проблема с функциями, которые намеренно возвращают undefined.

так что я не знаю, можно ли мой код считать классным (: пусть посуществует на правах "ещё одного способа"
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2012, 20:04
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от Maxmaxmахimus
почему не сделать сжатие по словарю?
Чё?
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2012, 20:35
Новичок на форуме
Отправить личное сообщение для mrgordon Посмотреть профиль Найти все сообщения от mrgordon
 
Регистрация: 04.06.2012
Сообщений: 8

многострочный текст нельзя писать
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2012, 20:40
Новичок на форуме
Отправить личное сообщение для mrgordon Посмотреть профиль Найти все сообщения от mrgordon
 
Регистрация: 04.06.2012
Сообщений: 8

в кавычках в яваскрипте
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно писать классы с использованием jQuery? Tpona jQuery 7 13.10.2009 15:16
Как правильно реализовать на Java-Script trio Общие вопросы Javascript 2 06.10.2009 19:11
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как правильно подгрузить jQuery Siton jQuery 4 15.06.2009 09:54
Как правильно оформить Send() Алекс97 AJAX и COMET 20 30.10.2008 19:19