melky,
а у тебя статик работают так
var Cat = new Class({
__static__: {
FAV_CAT_NAME: "пушок"
},
});
Cat.FAV_CAT_NAME === new Cat().FAV_CAT_NAME // true ?
Удобнее ли вот такой подход?
var Cat = new Class( function( __static__ ){
__static__.FAV_CAT_NAME = "пушок";
} );
А так же вопрос, у тебя нет ни какой функции в описании, у тебя обьект описательный, то есть как бы нельзя делать в нем ни какие "действия" как в моей описательной функции. Например у меня в ней можно обьявлять как бы приватные вспомогательные функции которые не относятся к самому обьекту, но их используют методы этого обьекта. При том они не наследуются а наследуются только сами методы. Как это делается у тебя?
var Cat = new Class( function () {
this.__construct__ = function () {
this.food = [];
};
this.eat = function ( foodInstance ) {
var suitabilityOfFood = _testSuitabilityOfFood( foodInstance );
if ( !suitabilityOfFood ) return false;
this.food.push( foodInstance );
}
// this вообще не используется, функция вспомогательная и не является методом объекта
// по этому и не должна наследоваться. Начинается она с подчеркивания чтобы показать что это внутренняя функция
// класса, то есть просто введя подчеркивание я сразу получаю в кодкомплите какие у меня вспомогательные
// функции в этом классе есть.
function _testSuitabilityOfFood( foodInstance ) {
return foodInstance instanceof Food;
}
} );
Таким образом функция описатель представляет собой область видимости в которой мы можем вытворять че хотим.
А у тебя бы нам пришлось относить такие вспомогательные функции либо К приватным методам, либо создавать их В САМИХ МЕТОДАХ на лету.
ну то есть так
var Cat = new Class( {
eat:function ( foodInstance ) {
// каждый раз создается
function _testSuitabilityOfFood( foodInstance ) {
return foodInstance instanceof Food;
}
var suitabilityOfFood = _testSuitabilityOfFood( foodInstance );
if ( !suitabilityOfFood ) return false;
this.food.push( foodInstance );
}} );