Continuando nossa saga de evitar Eval e conhecer melhor o Javascript, vou brincar com a seguinte situação: parsear um template html escrito com Expression Language da spec JSP.
Imagina o seguinte trecho abaixo:
<c:if test="${sessionScope.cart.numberOfItems > 0}">
...
</c:if>
É fácil montarmos um mapa com todas as expressões encontradas entre ${ e } e depois chamar eval para processar, mas como quero evitar essa chamada, o que podemos fazer?
Encontramos na documentação de referência da Mozilla a resposta, especificamente no objeto nativo Function, onde podemos criar uma new Function passando seu corpo como uma string que será executada ao fazer a chamada dessa function. Montei abaixo um exemplo como funciona:
Caso não veja no seu Feedreader, link do github.
Posted in JavaScript ~ 3 Comments





