Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача функции в функцию с параметрами. (https://javascript.ru/forum/misc/66957-peredacha-funkcii-v-funkciyu-s-parametrami.html)

Артист 20.01.2017 10:02

Передача функции в функцию с параметрами.
 
У меня много XMLHttpRequest запросов, и для каждого писать такое неудобно:

var xhr = new XMLHttpRequest()
xhr.withCredentials = true
xhr.onreadystatechange = function()
{
	if(xhr.readyState != 4) return

	alert(xhr.responseText)
}
xhr.open('GET', 'http://www.site.ru', true)
xhr.send(null)


Подумал сделать 1 функцию, чтобы не писать лишний раз одно и тоже, но не разбираюсь в тонкостях javascript.

Так правильно будет(в основном я не знаю как функцию-обработчик запроса назначить и передать в него xhr)?:
1 функция, со всеми необходимыми параметрами.
function xml(method, post, ref, functions)
{
	var xhr = new XMLHttpRequest()
	xhr.withCredentials = true
	xhr.onreadystatechange = functions(xhr)
	xhr.open(method, ref, post)
	xhr.send(null)
}


Использование:
xml
(
	'GET',
	true,
	'http://www.site.ru',
	functions()
	{
		if(xhr.readyState != 4) return
		
		alert(xhr.responseText)
	}
)

рони 20.01.2017 10:10

Артист,
function xml(method, post, ref, functions) {
    var xhr = new XMLHttpRequest;
    xhr.withCredentials = true;
    xhr.onreadystatechange = functions;
    xhr.open(method, ref, post);
    xhr.send(null)
}
xml("GET", true, "http://www.site.ru", function() {
    if (this.readyState != 4) return;
    alert(this.responseText)
});

Артист 20.01.2017 10:51

Спасибо ))


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