Показать сообщение отдельно
  #12 (permalink)  
Старый 01.02.2012, 18:15
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Livaanderiamarum,
Это в моем примере он вызывается только при создании сущности, но потом то он тоже будет доступен, но только внутри того scope естественно, в котором он определен. Если вы будете расширять класс public методами "снаружи", то конечно, он доступен не будет.

Сообщение от Livaanderiamarum
Но зачем это нужно?
Если приватный метод вызывается в единственном месте, то да, возможно стоит задуматься об избавлении от него, ведь лишняя вложенность производительности не добавит, с другой стороны, как правило, метод не просто выполняет какую-то часть кода, а выполняет какую то определенную задачу, и, таким образом, ваш код будет выглядеть опрятнее и будет гораздо гибче.

var AwesomeParser = function () {
	AwesomeParser.prototype.init.apply(this, arguments);
}

AwesomeParser.prototype = new function (AwesomeParser) {
	
	/**
	 *	@public @Array parsed
	 *	@description Распарсенная строка
	 */
	this.parsed = [];
	
	/**
	 * @public @Fucntion init( @String string ) : @void
	 * @description Инициализирует инстанс со строкой
	 */
	this.init = function (string) {
		
		if (typeof string === "string") {		
			this.parsed = parseString(string);
		}
	}
	
	this.valueOf = function () {
		return prettifyParsed.call(this);
	}
	
	/**
	 *	@private @static @RegExp R_DIGIT
	 */
	var R_DIGIT = /\d+/g;
	
	/**
	 *	@private @static @Function parseString( @String string ) : @Array
	 *	@description Возвращает массив вхождений цифр
	 */
	var parseString = function (string) {
		return string.match(R_DIGIT);
	}
	
	/**
	 *	@private @Function prettifyParsed() : @Array
	 *	@descriptoin Преобразует массив строк в массив чисел
	 */
	var prettifyParsed = function () {
		return this.parsed.map(function (strd) {
			return +strd;
		});
	}

}(AwesomeParser);

var parser = new AwesomeParser();


parser.init("1000 и 1 ночь");

alert(parser.valueOf());


Лично мне нравится так программировать (это очень грубый пример, тут можно просто 1 метод написать и все), кому как, зато такой класс легко расширяется, модифицируется и так далее и читать удобно
__________________
readOnly
Ответить с цитированием