6
請考慮代碼兩個片段(第一印 「本地EVAL」,第二打印 「全球EVAL」):區分本地EVAL
(function f() {
var x;
try {
eval("x");
console.log('Local eval');
}
catch (e) {
console.log('Global eval');
}
}())
和
var globalEval = eval;
(function f() {
var x;
try {
globalEval("x");
console.log('Local eval');
}
catch (e) {
console.log('Global eval');
}
}())
它事實證明,即使globalEval === eval
評估爲true
,globalEval
和eval
行爲不同,因爲他們有不同的名稱。 (如果它被精確地寫成eval
,則eval只能是本地的。)
我怎樣才能區分爲兩個evals?有沒有辦法提取變量標籤來推斷行爲?
@MattiVirkkunen:我試圖構建一個[this]的示例(http://stackoverflow.com/questions/7223517/pure-function-given-strictly-equal-arguments-yielding-non-strictly-equal - 結果)。我很接近,但尚未完成。 – Randomblue 2012-02-05 16:02:13
爲什麼你不堅持[你以前的問題](http://stackoverflow.com/questions/9145385/accessing-local-eval-inside-function-scope)? – 2012-02-05 16:06:06
@amnotiam:它有點不同,我感到困惑。我希望我可以刪除它。 – Randomblue 2012-02-05 16:11:05