(0, eval) () 的作用是什么? [复制]

2024-06-19

以下内容来自这个问题 https://stackoverflow.com/questions/14119988/return-this-0-evalthis/14120023#14120023

function q() {
console.log((0, eval)('this'));
}

它返回[对象窗口]。

我不明白的是其中的 (0,eval) 部分。

JS 用这个做什么?

从链接中可以看出,它正在间接调用 eval()。间接是什么意思?


其实只要看看JavaScript 中 (1,eval)('this') 与 eval('this') 比较? https://stackoverflow.com/a/9107367/2864740,我现在已将其投票为重复项:

.. Ecma 规范认为对 eval 的引用是“直接 eval 调用”,但仅产生 eval 的表达式是间接的——并且保证间接 eval 调用在全局范围内执行。

(虽然以下内容[大部分]是正确的,但它是不具体 to eval usage.)


The 逗号运算符 http://es5.github.io/x11.html#x11.14计算所有表达式并生成最后一个表达式的值。

那是,(0, eval)评估为eval(这是一个函数对象值),这样结果表达式相当于eval('this').

从另一个角度来看:

var f = (0, eval)
f === eval // true
f('this')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(0, eval) () 的作用是什么? [复制] 的相关文章

随机推荐