замыкания в firefox небезопасны

в яваскрипте замыкания часто используются для эмуляции private-свойств объектов. В следующем примере внешний код, имея доступ к a, никогда не сможет узнать значение b:

a = (function(){
    var b = 123;
    return function(){ b; }
})()

однако, на это нельзя рассчитывать при использовании firefox — в нём можно передать в eval вторым параметром контекст выполнения кода:

eval('c = b', a)

это можно считать проявлением большей гибкости, но мне это кажется очередным неудобным исключением, о котором нужно помнить

update: ага, уже в 3.1 этого не будет

Артемий Трегубенко,
,

comments powered by Disqus