Показать сообщение отдельно
  #27 (permalink)  
Старый 17.10.2012, 09:50
Аватар для Maxmaxmахimus
司会
Отправить личное сообщение для Maxmaxmахimus Посмотреть профиль Найти все сообщения от Maxmaxmахimus
 
Регистрация: 29.02.2012
Сообщений: 198

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 );
	}} );

Последний раз редактировалось Maxmaxmахimus, 17.10.2012 в 10:23.
Ответить с цитированием