Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Область видимости переменной (https://javascript.ru/forum/misc/57006-oblast-vidimosti-peremennojj.html)

kostyanet 15.07.2015 15:40

Три страницы ниочем, и при чем тут ес6? Вот так делается правильный scope

var data=false;

SomeClass.prototype.foo = function(id){
	ajax({
		method: 'POST',
		url: 'test.php',
		params: 'id='+id,
		success: function(response){
			data = response; // ответ получен
		}
	});
}


хотите риторически отметить что тут ничего и не делается? Ну правильно. Потому что действие надо тупо закатать в эту самую функцию success, то есть передать его сквозь foo

SomeClass.prototype.foo = function(id,success){
	ajax({
		method: 'POST',
		url: 'test.php',
		params: 'id='+id,
		success: success(response)
	});
}


Логично возникает вопрос зачленом обертывать функцию функцией без ничего между ними? Незачем.

Что и требовалось доказать.

Makarov 15.07.2015 16:46

Цитата:

Сообщение от Lemme (Сообщение 379768)
да мне это не для реального проекта, а для обучения. Соответственно, не использую никаких библиотек/фреймворков.

Я советую таки не слишком увлекаться ES6, если Вы не планируете только обучаться ближашие пару лет) Нативных промисов нет в IE11 который некоторое время еще жить будет.

Да и поддержка ES6 вообще куда меньше чем хотелось бы, и браузер в котором все фичи ES6 будут нормально работать появится хорошо если к концу года)

Erolast 15.07.2015 17:01

Я советую использовать ES6 на полную мощность, ВСЕ его нововведения, потому что это радикально повышает качество кода и ускоряет процесс разработки.

А для обеспечения кроссбраузерной поддержки (даже в IE8) существует babel.

kostyanet 16.07.2015 08:34

Цитата:

Сообщение от Erolast
существует babel.


Я тоже не советую самовыражаться, а подождать когда самовыражатели все отшлифуют и бабел не понадобится.

nerv_ 16.07.2015 13:22

Цитата:

Сообщение от Makarov (Сообщение 379811)
Я советую таки не слишком увлекаться ES6, если Вы не планируете только обучаться ближашие пару лет) Нативных промисов нет в IE11 который некоторое время еще жить будет.

Да и поддержка ES6 вообще куда меньше чем хотелось бы, и браузер в котором все фичи ES6 будут нормально работать появится хорошо если к концу года)


то, что доктор прописал:
Цитата:

Сообщение от Erolast (Сообщение 379814)
Я советую использовать ES6 на полную мощность, ВСЕ его нововведения, потому что это радикально повышает качество кода и ускоряет процесс разработки.

А для обеспечения кроссбраузерной поддержки (даже в IE8) существует babel.

:)

Makarov 16.07.2015 13:56

nerv_,
да знаю, знаю я про babel)
Моя общая мысль такая, что момент когда es6 станет дефакто стандартом в индустрии еще не настал. И через год не настанет. Хорошо если через два. То есть прийти в какой-то готовый проект и начать строчить там на es6 - проблем будет больше чем выгоды.

Что es6 круто, есть куча транспилеров и есть те кто разрабатывает уже на es6 я не спорю.


Часовой пояс GMT +3, время: 05:48.