Hora de falar de Javascript. Hoje vou falar sobre um recurso que o
Javascript oferece para diminuir as referências aos objetos. Utilizando
o with() você consegue deixar o seu código mais legível e prático.
Veja um exemplo:
Uma implementação comum, sem o with()
function foo(){<br /> var x = document.forms[0].elements[0].value;<br /> var y = document.forms[0].elements[1].value;<br /> var z = document.forms[0].elements[2].options[document.forms[0].elements[2].selectedIndex].text;<br />}A mesma implementação, COM o with()
function foo(){<br /> with(document.forms[0]){<br /> var x = elements[0].value;<br /> var y = elements[1].value;<br /> with(elements[2]){<br /> var z = options[selectedIndex].text<br /> }<br /> }<br />}Viram como o código ficou menor e mais legível? Não não precisamos
ficar repetindo instruções para se referenciar a um determinado objeto.
Gostaram? Ok, mais um exemplo então:
var a, x, y;<br />var r = 10;<br />with (Math) {<br /> a = PI * r * r;<br /> x = r * cos(PI);<br /> y = r * sin(PI/2);<br />}Na forma tradicional teríamos que ficar nos referenciando ao objeto Math do javascript: Math.cos(PI) ou Math.sin(PI/2).
Atenção
O uso do with() pode ser nocivo. Como também o eval(), e
também como o ajax pode ser nocivo e se pensar no mesmo raciocínio,
muitos outros recursos disponíveis na linguagem podem ser nocivos se
não forem aplicadas de forma correta. Caso for de interesse, leia mais
em:
http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/
É isso aí, um abraço a todos.







