Czy javascript pozwala na aliasing eval? Pierwsza część poniższego kodu zachowuje się nieoczekiwanie (wyświetla 1, 1), ale druga część nie (wyświetla 1, 2). Pomocne będzie odwołanie do skryptu ECMA lub dokumentów mozilla, którego nie można znaleźć.JavaScript eval alias
<html>
<script type="application/javascript;version=1.8">
(function(){
eval('var testVar=1');
alert(testVar);
var eval2=eval;
eval2('var testVar=2');
alert(testVar);
})();
(function(){
eval('var testVar=1');
alert(testVar);
eval('var testVar=2');
alert(testVar);
})();
</script>
</html>
W jaki sposób wynik pierwszego jest nieoczekiwany? –
Gdy 'eval' nie jest aliasem, wyświetla 1, 2, patrz druga funkcja. Jeśli jest to oczekiwane, czy możesz odpowiedzieć na pytanie? Dzięki. – simonzack
Tak, ale powiedziałeś, że pierwszy zachowuje się nieoczekiwanie, wyświetlając 1 i 2. To jest oczekiwane. –