gpt4 book ai didi

javascript - 您可以在 native 模块中突破严格模式吗?

转载 作者:行者123 更新时间:2023-12-01 00:03:37 25 4
gpt4 key购买 nike

默认情况下,模块中的代码处于严格模式,但是您可以从模块内部突破到非严格模式吗?

最佳答案

并不是说您应该这样做,但您可以调用new Function ,默认情况下不会在严格模式下运行:

<script type="module">
const fn = new Function('console.log(this === window);');
fn();
</script>

您可以使用 eval 执行非常类似的操作,如果您通过使用对 window.eval 的原始引用以外的任何方式来调用它:

<script type="module">
const anotherEvalReference = eval;
anotherEvalReference('console.log(this === window);');
</script>

(如果您从原始 eval 引用调用 window.eval,它将在词法上继承严格模式,以及 eval 调用的外部范围中的任何变量。否则,如果您调用 eval来自不同的引用,它将在顶层运行,并且不会按词法继承严格模式,或者能够引用 eval 调用之外的变量,除非这些变量是全局的)

关于javascript - 您可以在 native 模块中突破严格模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60543172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com