Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объектная структура (https://javascript.ru/forum/misc/35741-obektnaya-struktura.html)

Moonlight 20.02.2013 19:20

Объектная структура
 
Всем привет!

Может мне кто подскажет. Мне нужно на js создать структуру как в jQuery.
То есть у меня допустим будет функция и в неё я передам название html-элемента "myFunc('body')". Затем я вызову её метод ну и с этим элементом произойдёт то, что я повешу на него "myFunc('body').move(100)". Метод move как раз будет изменять body.

В общем как написать такую структуру вызова на js?

danik.js 20.02.2013 20:03

По образу и подобию jQuery, только работает с одним элементом:
(function(){
var myFunc = function(selector){
    return new myFunc.prototype.init(selector);
}
myFunc.prototype = {
    init: function(selector) {
        this.selector = selector;
        this.element = document.querySelector(selector);
        return this;
    },
    move: function(x) {
        alert ('move ' + this.selector + ' to ' + x);
        return this;
    }
}
myFunc.prototype.init.prototype = myFunc.prototype;

window.myFunc = myFunc;
})();

myFunc('body').move(100);

megaupload 20.02.2013 20:59

это называется цепочки вызовов, когда метод возвращает сам обьект return this.

danik.js 20.02.2013 21:03

megaupload, у него в вопросе ни слова про цепочки, только упоминание jQuery. Ему как я понял главное получать из селектора объект, у которого есть различные методы работы с этим объектом.

megaupload 20.02.2013 21:05

Цитата:

Сообщение от danik.js
у него в вопросе ни слова про цепочки, только упоминание jQuery.

Цитата:

Сообщение от Moonlight
как написать такую структуру вызова

да ты шерлок

danik.js 20.02.2013 21:06

megaupload, да ты олень )
Процитируй лучше где он упомянул цепочку.

megaupload 20.02.2013 21:45

Цитата:

Сообщение от danik.js
да ты олень )

Зачем ты мне нагрубил? В баню захотел?

danik.js 20.02.2013 21:51

К сожалению у меня плоховато развита фантазия. Извини что не подобрал более подходящего слова для тебя, ок?

megaupload 20.02.2013 21:54

И тем не менее ты нагрубил. В баню захотел?

Moonlight 20.02.2013 22:44

danik.js отлично, это и нужно, спасибо)


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