Добрый день!
Уже несколько дней пытаюсь понять замыкания в js,но пока не особо выходит.
Подскажите пожалуйста:
1.
Есть такой код
http://jsfiddle.net/vnkuZ/
Мне интересно почему если в коде javascript вместо
return function() {
document.body.style.fontSize = size + 'px';
};
прописать
return document.body.style.fontSize = size + 'px';
то скрипт становится нерабочим?
Зачем возвращать функцию function() внутри функции makeSizer(size),когда можно сразу вернуть значение
document.body.style.fontSize = size + 'px'
?Почему это не работает?
Что дает возврат функции?
2.
http://jsfiddle.net/E5Aj6/
Здесь - то же самое,не понимаю зачем нужно вызывать функцию?
Знаю то что без замыканий при таком скрипт,любой элемент будет отображать последнее значение массива.
Но все равно не очень понимаю - что делает эта функция?
Что нам это дает?Если не трудно,распишите поподробнее.
function(x) {
return function() {
...
}
}(n);
Объясните пожалуйста также,в функции
function(x) {
}(n)
что есть такое x и что есть n?Откуда берутся?Особенно x?
P.S.
Статьи за замыканиям читал много где,и на learn.javascript.ru и на хабре,и mozilla javascript reference - все равно не до конца понимаю.