Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Ссылки в javascript (https://javascript.ru/forum/misc/8905-ssylki-v-javascript.html)

Nekromancer 21.04.2010 12:04

Цитата:

Сообщение от e1f (Сообщение 52458)
Да не вопрос :)
function change() {
    window.x=11;
}

x=10;
 
change(x);
alert(x);


Меняет? Меняет :)

Это сарказм был)) А про замыкания я знаю)

function change() {
    x=11;
}
var x=10;
change();
alert(x);

Так лучше )

Kolyaj 22.04.2010 09:32

Цитата:

Сообщение от Nekromancer
А про замыкания я знаю)

А тут нет замыканий :)

Nekromancer 22.04.2010 09:43

Угу, тут есть функция которая видит весь контекст.. почему бы не назвать её замыканием?
var closure = function(){
change();
}
function change(){
x = 11;
}
var x = 10;


Вот так вот уже и замыкание..

Kolyaj 22.04.2010 12:02

Цитата:

Сообщение от Nekromancer
Угу, тут есть функция которая видит весь контекст.. почему бы не назвать её замыканием?

Любой код видит глобальные переменные. Давайте любой код называть замыканием.

Nekromancer 22.04.2010 12:21

Имеется введу замыкание не из-за глобальных переменных, а из-за специфики такой (function label) записи функци.. если функция будет анонимная, то она не увидит переменную "ниже" себя в коде.
Чем это не замыкание, использовать именованную функцию для работы со всем контекстом?..
давайте рассмотрим пример..
(function(){
//...
function named(){
 return x;
}
var anonimus = function(){
 alert(named());
}
var x = 'чё то там';
//...
anonimus();
}());


Это конечно извращение, реальную задачу сейчас трудно придумать, да может оно и не нужно вообще, но имхо, это замыкание.

Kolyaj 22.04.2010 12:44

Цитата:

Сообщение от Nekromancer
если функция будет анонимная, то она не увидит переменную "ниже" себя в коде.

Разгребайте кашу в голове http://dmitrysoshnikov.com/ecmascrip...r-5-functions/

Ну и заодно http://dmitrysoshnikov.com/ecmascrip...er-6-closures/

Nekromancer 22.04.2010 12:46

Читал я это.

Kolyaj 22.04.2010 12:51

Тогда вы должны понимать бредовость процитированной мной фразы.

Nekromancer 22.04.2010 13:09

эээ.. ну был не прав, почему то думал, что scope контекста запоминается такой, какой был в момент объявления..

micscr 22.04.2010 14:47

С замыканиями нужно связываться очень аккуратно и с солидной js подготовкой, а то можно получить Замыкание головного мозга :) .


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