Составные элементы Javascript - PullRequest
       3

Составные элементы Javascript

0 голосов
/ 20 октября 2011

У меня есть эта страница, я делаю несколько тестов в Javascript и jQuery: JS Tests

У меня есть несколько вопросов о том, как создавать, не уверен, что это правильный термин, но составные элементы управления через Javascript. В чем-то вроде Flash вы бы создали класс Object, получили бы геттеры и сеттеры, нарисовали ваши изображения и т. Д. В JS это, кажется, совсем другой мыслительный процесс. Мой главный вопрос Как создать несколько элементов с геттерами и сеттерами для рендеринга, фильтрации и взаимодействия в Javascript?

Основной код этого примера:

var html = (function(){
    // var FRAG = $(document.createDocumentFragment());
    htmlBox = $(document.createElement("div"));
    var eTitle = $(document.createElement("h4"));
    var ePrice = $(document.createElement("p"));

    // set class first
    htmlBox.addClass("box")
    htmlBox.css({
        backgroundColor : color
    })

    // set text values
    eTitle.text(title);
    ePrice.text("$" + price);

    htmlBox.append(eTitle)
    htmlBox.append(ePrice)

    return htmlBox;
})();

... внутри класса Box (). Если бы кто-то мог взглянуть на источник и сообщить мне, что не совсем правильно, это было бы здорово.

EDIT

Вот окончательный результат для этого примера. Немного логистики, чтобы работать, но то, что я после.

http://geerswitch.in/tests/obj/

Что касается узлов, создающих jQuery, то встроенная версия JS отлично подходит для этого, и некоторые исследования в Google показывают, что способ без jquery в большинстве случаев быстрее (и выглядит хуже, imo)

1 Ответ

1 голос
/ 20 октября 2011

Вы делаете это почти правильно. Вы создали класс Box для представления элемента пользовательского интерфейса высшего порядка, создаете его экземпляр для каждого элемента, и ваша основная программа манипулирует элементами через его интерфейс. Единственное, что вам не хватает - это разрыв между открытым интерфейсом и частной реализацией. Ничто не мешает мне делать myBox.price += 10 прямо сейчас, даже если интерфейс Box явно подразумевает, что price должен быть установлен при построении и никогда не изменяться.

JavaScript не имеет модификаторов видимости, таких как "private" и "public", но вы можете создать тот же эффект самостоятельно. Проверьте объяснение Дугласа Крокфорда для деталей. Крокфорд - самоуверенный гений, когда дело доходит до JavaScript, и он является мозгами JSLint и JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...