Я изучаю javascript, используя разные книги, и я замечаю, что не могу найти адекватного объяснения того, когда именно вы используете return. Я понимаю, что вы используете его, когда вы хотите, чтобы вернуть значение из функции, но есть такие примеры, как это с помощью Javascript: The Good Parts:Когда использовать 'return' в javascript
var quo = function(status) {
return {
get_status: function() {
return status;
}
};
};
var myQuo = quo("amazed");
document.writeln(myQuo.get_status());
Почему статус должен быть возвращен, когда он уже доступен к функции кво в качестве аргумента? Другими словами, почему просто
return {
get_status: status;
}
не работает?
Другой пример на странице сразу же после:
var add_the_handlers = function(nodes) {
var helper = function(i) {
return function(e) {
alert(i);
};
};
var i;
for (i = 0; i<nodes.length; i+=1) {
nodes[i].onclick = helper(i);
}
};
Почему мы возвращающейся тревоги (I) в функции вместо того, чтобы просто положить предупреждение (я)?
Я думаю, что вы сбиваете с задержкой выполнение с немедленным. 'function() {alert()}' и 'alert()' не одно и то же. Кроме того, если вы сделали это 'get_status: status', теперь это свойство, а не метод (поэтому' myQuo.get_status' вместо 'myQuo.get_status()'), а также доступен только для чтения, а не для модификации. –
Пример второй: вы не хотите сразу предупреждать, вы хотите оповестить позже ... Вы не возвращаете 'alert (I)', вы возвращаете функцию, которая вызывает 'alert'. –
Почему он передает «e» этой функции? –