Manipulador de atribuição e recuperação
Usaremos um manipulador de atribuição (set) e recuperação de propriedades (get) bem simples, para todo conjunto de parâmetros proxiados de uma script javascript:var handler = {
get: function(obj, prop) {
return name in target ? target[name] : null;
},
set: function(obj, prop, value) {
obj[prop] = value;
}
};
Vamos definir, igualmente, um objeto proxiado "p":
var p = new Proxy({}, handler);
Quando a página for carregada, vamos carregar a função init(), que faz as atribuições. Este é o método correto para garantir que toda a página e suas scripts estejam carregadas, antes que qualquer instrução possa ter sido executada:
function init(){
p.a = 144;
p.b = 225;
}
Página completa
<script>var handler = {
get: function(obj, prop) {
return prop in obj ? obj[prop] : null;
},
set: function(obj, prop, value) {
obj[prop] = value;
}
};
// Propriedade/Variável a ser proxiada
var p = new Proxy({}, handler);
function init(){
p.a = 144;
p.b = 225;
}</script>
<body onload="init();alert(p.a)">
</body>
Execução
Vamos utilizar o navegador Chrome para o debug da script:O objeto em questão "p" terá sua propriedade "a" definida com valor 144. Este objeto é realmente um array.
Vamos saltar para o método de recuperação, quando for emitido o alert(p.a):
A chamada alcança o método "get" do handler de objetos. Como a propriedade pertence ao objeto, o valor do item do array é correspondente.
Aumentando a eficiência
Mas a eficiência e a proteção das "variáveis" proxiadas aumenta com o expediente de se fazer o proxiamento ser um comportamento natural de objetos instanciados por funções anônimas, associado à camada de exibição das páginas HTMLTrataremos disto em nosso próximo encontro neste blog.
Nenhum comentário:
Postar um comentário