Сообщение от Nekromancer
|
Вот моя реализация, использую в текущем проекте И с миксинами.
|
довольно интересно сделано
особенно вот этот момент:
if (parent) {
if (!(this instanceof parent)) {
self = Object.create(parent.prototype);
}
parent.apply(self, arguments);
}
handler.apply(self, arguments);
return self;
};
Сообщение от Maxmaxmахimus
|
melky,
а у тебя статик работают так
var Cat = new Class({
__static__: {
FAV_CAT_NAME: "пушок"
},
});
Cat.FAV_CAT_NAME === new Cat().FAV_CAT_NAME // true ?
|
for (i in static) if (static.hasOwnProperty(i)) {
constructor[i] = static[i];
}
они не наследуются.
смотри пример со статическим "вшитым" свойством :
alert( "now" in Date ); // ну мы знаем, что это за метод такой.
var myDate = new Date(); // создадим экземпляр
alert( "now" in myDate ); // в экземпляре нету статического метода.
Сообщение от Maxmaxmахimus
|
Удобнее ли вот такой подход?
|
я поэтому и написал её, чтобы не писать вот так :
Cat.prototype.foo = function ...
Cat.prototype.bar = function ....
и __static__ туда же :
__static__.foo = ...
__static__.bar = ...
__static__.mar = ...
каждый раз повторять одно и то же неохото, поэтому я сделал всё через хеши.
Сообщение от Maxmaxmахimus
|
Как это делается у тебя?
|
очевидно, что никак
я ими просто не задался.
данная функция просто позиционируется как укорачиватель действий\букв, которые тратятся впустую при обычном прототипном программировании. не более
и я в них я не вижу смысла, т.к. я сам эти "приватные" переменные (с "_" в начале имени свойства) уж точно не запорю, а внешний код в них тоже не сможет вмешаться - все экземпляры подчиняются одному ( класс App ), который является контроллером, и управляет доступом к объектам сам.
Сообщение от Maxmaxmахimus
|
ну то есть так
|
по-моему, это называется грязным хаком