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)的一部分,它现在已经指出,作为一个用逗号的 –