JavaScript: referenciar um escopo local de funções como um objeto
Quando eu chamo uma função, um escopo local é erigido para essa chamada. Existe alguma maneira de referenciar diretamente esse escopo como um objeto? Assim como window é uma referência para o objeto de escopo global.
Exemplo:
function test(foo){
var bar=1
//Now, can I access the object containing foo, bar, arguments and anything
//else within the local scope like this:
magicIdentifier.bar
}
Como alternativa, alguém tem uma lista completa do que está no escopo local sobre as variáveis personalizadas?
Antecedentes: Estou tentando chegar a uma maneira de mudar completamente para o escopo global de dentro de uma chamada de função, a instrução with é uma piada, a chamada funciona um pouco melhor, mas ainda é interrompida por qualquer coisa declarada no escopo da função, mas não no escopo global, portanto, eu declararia esses poucos casos no escopo global, mas isso exige que eu saiba o que são. A função do IE execScript faz uma mudança completa, mas isso apenas resolve o problema do IE.
Nota: para quem carrega JavaScript dinamicamente,setTimeout(code,1)
é um hack simples e eficaz para alcançar o escopo global, mas não será executado imediatamente.