gpt4 book ai didi

JavaScript 'use strict' ;内部函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:13:02 26 4
gpt4 key购买 nike

Chrome Dev Console 中测试了一些 js 代码,我有点困惑。

我知道在严格模式中,当引用this关键字时不是对象方法的函数应该接收undefined而不是全局对象.

function test(){
"use strict";
return this===undefined;}
test();

输出

"use strict";
function test(){
return this===undefined;}
test();

仍然错误

(function test(){
"use strict";
return this===undefined;}());

输出

只是想澄清一下。 ʕ•ᴥ•ʔ我是js新手。

最佳答案

您注意到的只是开发人员控制台工作方式的副作用。当您在那里输入代码时,实际上会发生这种情况(有关详细信息,请参阅 this answer):

eval.call(null, "with (window) { \
function test() { \
'use strict'; \
console.log(this); \
} test(); \
}");

这是对 eval间接调用,这意味着它将始终在全局执行上下文中执行(在浏览器中,即 window ).

实际上,该函数绑定(bind)到全局对象,因此 this 持有对全局对象的引用,就像您在网页中(而不是在控制台中)这样做一样:

function test(){
"use strict";
return this === undefined;
}

test(); // true
test.call(window); // false

关于JavaScript 'use strict' ;内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15135405/

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