Показать сообщение отдельно
  #75 (permalink)  
Старый 18.04.2009, 11:12
Интересующийся
Отправить личное сообщение для Артем Шалхаков Посмотреть профиль Найти все сообщения от Артем Шалхаков
 
Регистрация: 07.04.2009
Сообщений: 24

Все-таки жесть этот JavaScript.

Нужна лексическая область видимости -- юзайте лексическую, нужна динамическая -- используйте ее, опять же.

А тут смешали бензин с кошачьим дерьмом, надеясь получить взрывную смесь, а получили... бензин с кошачьим дерьмом вперемешку.

Пусть дан такой кодец:

var x = 0;
var f = function() { return x; }
var g = function() { var x = 1; return f(); }


Если область видимости динамическая, то g вернет 1, а если лексическая -- то 0. И не нужные никакие activation objects, [[SCOPE]] и прочая муть.

Читать: http://en.wikipedia.org/wiki/Scope_(programming) или SICP, там отличные примеры.

Ну и конкретно по JS: http://www.digital-web.com/articles/...in_javascript/
Ответить с цитированием