以下は、対話型コンソール モードでは奇妙な動作が発生しないため、関数スコープ内にある必要があります。
次の関数は期待どおり 5 を返します
(function() { var x = 5; return eval("x"); })()
単純な透過的な (っぽい) 変更:
(function() { var x = 5; var j = eval; return j("x"); })()
エラーが発生します:
ReferenceError: x is not defined
これはある種の奇妙なセキュリティ対策ですか?