Семен семеныч :) Терминология… Кстати если то же самое написать непосредственно в теге скрипт, вне функций и т.д., то получившийся объект будет доступен глобально, даже «var» можно не писать. Единичность от места не изменится, есессно…
Да уж, да уж :))) Точно кто-то из девелоперов почесал репу и поставил if (ini_get(«magic_quotes_gpc») == «on») ini_set(«magic_quotes_gpc», «off»); чтобы неповадно было этот костыль юзать.
Иногда это крайне удобно… Допустим я создаю сразу объект, выполняющий нечто. Без классов, без ничего… просто пишу
var myObj = {
a = function() {},
b = function() {},
str = "",
}
и сразу пользуюсь
myObj.a();
В случае PHP для такого дела надо было бы использовать статические функции и переменные, а уже совсем не ООП, когда класс сам по себе является подобием объекта. Так что оба подхода полезны и важны, надо использовать сильные стороны языка, тогда все будет ок )
Я потенциально не доверяю фреймворкам :))) вот когда будет немеряный стэйбл, тогда да, можно будет использовать. А пока это все-таки эксперимент… как дебажить мой скрипт, базированный на фреймворке версии 0.1 ;) я только об этом сейчас…
Про GWT процитирую коллегу: «не знаю, я не доверяю кодогенераторам, как потом дебажить, как контролировать кроссбраузерность». Гугл это круто конечно, но я предпочитаю не зависеть от сторонних библиотек… jQuery, например, использую только вследствие безумной удобности, а так — по минимуму стороннего, но без фанатизма «я все пишу только сам», иногда лучше всетаки довериться разработчикам, чем изобретать велосипед, но это опять же оффтоп.
» как работает OOP-модель в JS
Ну как она работает, я более менее знаю, уже не первый год с ним общаюсь… самый любимый язык, потому так ревностно и отношусь :)
P.S. а его синтаксис я вообще обожаю… за конструкции вида fncReturningArray(«id»)[0] в php бы душу продал… или за var Zoo = Zoo || {}; и вообще за JSON при описании PHP массивов, но это уже оффтоп.
Я прекрасно понимаю, что обертка — это именно обертка. Под последним предложением я вообще готов подписаться — как интересный прием эту обертку и следует рассматривать, а с точки зрения практического использования, я сильно сомневаюсь. Просто честно, не вижу смысла эмулировать какие-то вещи из других языков просто чтобы синтаксический сахар получить…
» что такое «непонятно что»?
Я образно имел ввиду :) Имеем прототипный язык, код на котором будет построен на принципах статической модели, это и есть непонятно что :) я не знаю как это назвать… это два противоречащих друг другу принципа, просто гибкость динамической модели позволяет реализовать статику, наоборот-то будет гораздо проблемнее написать, если вообще возможно.
» Да он и работает так, как задумано (по-другому просто нельзя в данном случае реализовать)
Технически конечно работает, я про то, что прототипный язык должен работать как прототипный, без подобных граблей. Как эксперимент — зачет, но в проектах такое применять не следует…
Как согласный с автором комментария позволю себе ответить от себя — язык следует использовать так, как он создан, не надо языку с динамической типизацией и прототипами притягивать за уши парадигмы и приемы других языков. Недавнюю тему про аналоги функций php в js я считаю глубоко ошибочной — нельзя на одном языке программить по принципам абсолютно другого. Вы же не едите суп вилкой ;)
Зачем из прототипного языка делать непонятно что… Инструмент должен работать так, как задумано. К тому же мне кажется, что всякие такие обертки не будут ускорять работу скриптов ;).
Сугубо имхо: По мне так вообще прототипное программирование — вещь отличная, гибкая и удобная. Свобода действий… Обратная сторона — отсутствие строгости, но это преодолимо.
Насчет локального синглтона… погуглил, нашел статью про потоко-локальный синглтон и вот эту статью.
var myObj = {
a = function() {},
b = function() {},
str = "",
}
и сразу пользуюсь
myObj.a();
В случае PHP для такого дела надо было бы использовать статические функции и переменные, а уже совсем не ООП, когда класс сам по себе является подобием объекта. Так что оба подхода полезны и важны, надо использовать сильные стороны языка, тогда все будет ок )
Ну как она работает, я более менее знаю, уже не первый год с ним общаюсь… самый любимый язык, потому так ревностно и отношусь :)
P.S. а его синтаксис я вообще обожаю… за конструкции вида fncReturningArray(«id»)[0] в php бы душу продал… или за var Zoo = Zoo || {}; и вообще за JSON при описании PHP массивов, но это уже оффтоп.
Я образно имел ввиду :) Имеем прототипный язык, код на котором будет построен на принципах статической модели, это и есть непонятно что :) я не знаю как это назвать… это два противоречащих друг другу принципа, просто гибкость динамической модели позволяет реализовать статику, наоборот-то будет гораздо проблемнее написать, если вообще возможно.
» Да он и работает так, как задумано (по-другому просто нельзя в данном случае реализовать)
Технически конечно работает, я про то, что прототипный язык должен работать как прототипный, без подобных граблей. Как эксперимент — зачет, но в проектах такое применять не следует…
Сугубо имхо: По мне так вообще прототипное программирование — вещь отличная, гибкая и удобная. Свобода действий… Обратная сторона — отсутствие строгости, но это преодолимо.