Показать сообщение отдельно
  #21 (permalink)  
Старый 15.09.2011, 13:19
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Еще у меня из-за замыкания начинается паранойя:
proto = {
	method: function (…) {
		var a, b, c, d, …;
		Object.keys(…).forEach(function (…) {
			//к примеру, тут не нужны a, b, c, d
		});
	}
}

приходится выносить в отдельный метод:
proto = {
	_method: function (…) {
		//тут this → window
	},
	method: function (…) {
		var a, b, c, d, …;
		Object.keys(…).forEach(this._method);
	}
}

но метод в прототипе, ничего не делающий с this, кажется лишним, выносим его в отдельный объект:
utils = {
	method: function (…) {…}
}

proto = {
	method: function (…) {
		var a, b, c, d, …;
		Object.keys(…).forEach(utils.method);
	}
}

в итоге придется искать в коде, что же там за utils.method, который возможно состоит из пары строчек и самостоятельно не имеет смысла, появляется проблема с передачей дополнительных переменных.

а можно было всего-лишь написать:
proto = {
	method: function (…) {
		var a, b, c, d, …, keys = Object.keys(…), i = keys.length;
		while (i--) {
			…
		}
	}
}


поэтому forEach использую, только когда действительно нужен локальный скоп, а еще в светлом будущем ожидается let

Последний раз редактировалось Octane, 15.09.2011 в 13:40.
Ответить с цитированием