0
以下是從this question什麼是(0,eval)()呢?
function q() {
console.log((0, eval)('this'));
}
它返回[對象窗口。
我得不到的是(0,eval)部分。
JS在做什麼?
從鏈接,它說它是間接調用eval()。間接意味着什麼?
以下是從this question什麼是(0,eval)()呢?
function q() {
console.log((0, eval)('this'));
}
它返回[對象窗口。
我得不到的是(0,eval)部分。
JS在做什麼?
從鏈接,它說它是間接調用eval()。間接意味着什麼?
其實,剛纔看到(1,eval)('this') vs eval('this') in JavaScript?,我現在已經投爲重複:
..在了Ecma規範認爲一個參考EVAL是一個「直接的eval呼叫」,但是一個表達式,僅僅產生eval是間接的 - 並且間接的eval調用保證在全局範圍內執行。
(雖然以下是[大多]真實的,它是不是特定到eval
用法。)
的comma operator評估所有表達式併產生最後一個表達式的值。
也就是說,(0, eval)
的計算結果爲eval
(這是一個函數對象值),因此得到的表達式等效於eval('this')
。
要看到它的另一種方式:(這回答我的問題)
var f = (0, eval)
f === eval // true
f('this')
我的問題是更多關於(0,EVAL)的一部分,它現在已經指出,作爲一個用逗號的 –