鍍金池/ 問答/HTML/ 關(guān)于eval作用域的問題

關(guān)于eval作用域的問題

請(qǐng)看如下代碼:

(function(){
    
    var originalEval = window.eval;

    eval('var a = 1;');
    originalEval('var b = 2;');
}());

console.log(b); //輸出 2
console.log(a); //報(bào)錯(cuò)

按理說,兩者的作用域應(yīng)該是一樣的,為何一個(gè)是變成全局,一個(gè)還是局部?

回答
編輯回答
我不懂

直接使用eval,作用域?yàn)楫?dāng)前作用域;間接使用,如題目中的方式,則為全局作用域。

顯然報(bào)錯(cuò)的原因是:變量a的作用域是IIFE內(nèi)部

參考資料:https://developer.mozilla.org...

2017年6月22日 02:36