Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как это реализовано? (https://javascript.ru/forum/misc/28464-kak-ehto-realizovano.html)

faforty 21.05.2012 05:36

Как это реализовано?
 
Всем привет. Помогите разобраться в js коде.
Код взят с движка SocialEngine. core-min.js
SocialEngine.API.language = new class({
Base: {},
    initialize: function () {
        this.languageVariables = new Hash()
    },
    Translate: function (b) {
        var a = this.languageVariables.get(b) || "Missing Language Variable #" + b;
        return a
    },
    TranslateFormatted: function (d, c) {
        var b = this.languageVariables.get(d) || "Missing Language Variable #" + d;
        c.unshift(b);
        var a = sprintf.run(c);
        return a
    },
    Import: function (a) {
        if ($type(a) == "object") {
            this.languageVariables.extend(a)
        }
    }
});


Каким образом этот скрипт берет какие-то данные (перевод)?
В коде перевод добавляется так: this.Base.Language.Translate(854); //854 - номер слова

faforty 21.05.2012 07:08

Maxmaxmахimus, сам ЛОЛ), я знаю что это реализовано на классах. Я спрашиваю каким образом этот скрипт получает данные

faforty 21.05.2012 08:40

Maxmaxmахimus, Почему ты имеешь право обзывать людей, а тебя обзывать не имеют права? Я не лол, я хорошо разбираюсь в JS. Сам посуди, в посте задавался вопрос о другом (каким образом берутся данные), а не о том, что это реализовано на классах. Я и без тебя хорошо знаю, что на классах

devote 21.05.2012 10:19

Цитата:

Сообщение от Maxmaxmахimus
лол), в js на классах программируют XD.
Ну вообще не православно...

в JS много на чем программируют, и ничего в этом зазорного нет. Если тебя смущают какие-то вещи в JS то скажу тебе правду, ты не тот язык начал изучать. И в будущих версиях JS планируется ввести классы, так что изучай какой нить новый язык, так как потом тут будет много классов.

Цитата:

Сообщение от faforty
Каким образом этот скрипт берет какие-то данные (перевод)?
В коде перевод добавляется так: this.Base.Language.Translate(854); //854 - номер слова

Сложно ответить на этот вопрос не зная того что делает с объектом метод class

vadim5june 21.05.2012 11:01

только приблизительно можно сказать
при инициализации создается новый объект Hash у которого видимо есть метод get
this.languageVariables = new Hash();
когда мы обращаемся так
this.Base.Language.Translate(854)
мы попадаем на эту функцию

Translate: function (b) {
var a = this.languageVariables.get(b)...
которая перенаправляет на соответствующий метод Hash и там переводит
-----------
то есть нужен скрипт Hash чтобы точнее разобраться


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