gpt4 book ai didi

javascript - Nodejs交互控制台和文件执行运行时 'this'有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:08 24 4
gpt4 key购买 nike

在交互式 Nodejs 控制台中:

> var a = 1;
> console.log(a);
1
> console.log(this.a);
1

所以我认为

a === this.a

但是当我将其保存在 JS 文件中并执行它时,我得到不同的响应:

1 
undefined

为什么this.a现在未定义?

最佳答案

当您从控制台执行 Node 时,“this”指的是控制台的全局范围。因此'a'会自动添加到全局中,就像在浏览器中声明一个变量一样,以类似的方式将'a'添加到window中,即window.a

从脚本执行时,“this”是一个对象。变量不会以相同的方式添加到全局范围。为什么,我不知道。但这似乎正在发生。

关于javascript - Nodejs交互控制台和文件执行运行时 'this'有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12794390/

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