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