Сообщение от Zeroglif
|
Pavel_Volodko,
Сходу скачал только финальный вариант, сразу возник вопрос - почему передаются функции, а не заранее созданный объект-прототип? В смысле, в чём фишка?
upd а, идею функций понял, нужен верный $className...
upd2 и не хочется копировать...
|
Не совсем понял что значит "нужен верный $className"...
Фишка действительно в использовании функции вместо объекта-прототипа. Хотя, на самом деле, всё гениальное просто: для создания связной иерархии классов нужно цеплять прототипы к функциям-конструкторам. Имея только объект-прототип, мы такой возможности не имеем. Приходится извращаться со всякими __proto__, копированием методов или созданием фэйковых подклассов. А вот имея функцию-конструктор для создания объекта-прототипа всё делается элементарно.
upd копировать и не обязательно. Я сам очень настороженно отношусь к решениям, которым мне не до конца понятны. Я просто поделился тем, что сделал под себя. Just FYI, как говорится.
Сообщение от Kolyaj
|
А чем ваш способ this.method = function() {} отличается от приведенного прототайповского? (ну кроме того, что в прототайпе лучше тем, что вешается все на prototype)
|
В принципе, описано чуть выше.
На мой взгляд, достаточно заглянуть в метод Class.create() от Prototype, чтобы задаться кучей вопросов. Кроме того, выражение "вешается все на prototype" мне кажется странным (хотя, думаю, я понимаю что вы имеете ввиду) и уж тем более я не считаю это лучшим решением.