Обновить
5
0
Г.О.@gro

Пользователь

Отправить сообщение
Тогда уж:
arguments.callee.prototype = { ... }
:)
у нас есть замечательное предложение this (или как поправили выше with)

Оно далеко не такое замечательное. Применять его не рекомендуют уже даже разработчики JS.
with не позволяет нормально оптимизировать код и может иметь нежелательные эффекты, когда использующий не совсем четко представляет, как разрешается область видимости.
Просто, смотря кого считать разработчиками. Если каждого вебмастера, который пытается добавить на свою страницу какой-то эффект, то да, их тьма и им понимать ничего не нужно. Но они и без классов прекрасно обходятся.
Настоящие разработчики, все-таки, начинают постепенно появляться в должных количествах.
Я знаком с ней. Досконально. И то, что она делает, это не классы.
Если вы про эмуляцию классов, то, имхо, мотоцикл, это как раз прототипы. Только, конечно, с велосипеда на мотоцикл так просто не пересесть, придется долго тренироваться. А эмуляция классов, это вообще даже не велосипед, а самые что ни на есть костыли.
Сам язык JS < 2.0 с классами работать не умеет :)
Прошу прощения, ctrl-c не сработал. Цитата следующая:
Так, уже многое написано о проблеме наследования (котого в JS нет).
Так он не умеет общаться с классами ни практически, ни теоретически. У него другая парадигма, которую почему-то считают более убогой или просто урезанной от "КЛАССической". Но она просто другая. И в контексте применения JS она гораздо лучше подходит.
Может стоит с ним по ласковее и не будет сопротивляться? Если натягивать классориентированный подход на прототипоориентированный язык, понятно, что ему это не понравится.
В результате в каждом объекте создаётся свой, отдельный метод sum.

Как же нет, когда вы сами в этой статье доказываете обратное?
В результате в каждом объекте создаётся свой, отдельный метод sum.

Не нужно считать разработчиков js-движков ламерами. Это достаточно частый случай и оптимизирован он очень хорошо.
Так же я думаю вы понимаете, что разбор исходного кода происходит только один раз и байт-код (или как лучше назвать) соответствующий sum будет только в одном экземпляре.
Там нет работы с классами. Там есть эмуляция некого подобия классов средствами прототипного языка. Для людей не знакомым с прототипами, несомненно, удобнее использовать их, но если понять, как работают прототипы, то намного легче и приятнее работать с ними.
Да, нет, я и не пытался особо вводить новые терминологии и что-то объяснять :).
Я просто выразил недоумение по поводу информации приведенной в статье.
Хм. Конечно, 300 прерываний на автолоад с его обработкой будут медленнее трехсот require, тем более, что в автолоаде в итоге приходится тот же самый require и вызывать. Только смысл то его именно в том, чтобы сократить количество подключений. Иногда оно сокращается во много раз.
И остаются при присваивании локальной переменной нового.
При передаче же по значению, присваивание нового значения локальной переменной никак не затрагивает исходную, вне зависимости от того, какого типа было значение.
Пример с "$x->value = 1" к этому не относится, т.к. здесь $x резволится в объект, с которым уже и выполняются последующие действия (присвоение свойства).
Пардон, сейчас о PHP4 или о PHP5?
Передача "по значению" или "по ссылке" указывает на то, как локальная переменная вызванной функции, соответствующая аргументу, связывается с переменной из контекста вызывающей. При передаче по значению - никак. При передаче по ссылке, они становятся ссылками на одно значение.
А я от терминов и не отхожу.
Будет карма и время, обязательно напишу.
Мы не о PHP4 говорим. В PHP4 с этим заморачивались из-за того, что "new stdObject()" создавала объект в качестве значения, после чего происходило присвоение, т.е. копирование всего объекта. Теперь же результатом "new stdObject()" является не сам итоговый объект, а ссылка на него, которая и становится значением $a.
Время тратится на подключение файла. Тянуть 300 файлов на каждый чих — не лучший момент в ZF.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность