nodejs中的this
node与浏览器中this的区别
- 浏览器中this指向顶层是window
- node中this指向顶层是global
node中的this
- 文件中的内容,其实都是内一个函数包裹的(
记住这一条,一切都解开了
):
function(exports, require, module, __filename, __dirname){
}
- 文件中的this,默认为{}。
- 默认情况下node在执行的时候,是在文件中执行的,内部会给哲哥文件加一个自执行函数,会把this指向更改掉(内部的this是global,子不过这里被改写成了{})
console.log(this);
- 通过var、let、const声明
- 既不会挂在到global上,也不会挂在到this上
- 而是挂在都了模块作用域上
var a = 10;
console.log(global.a)
console.log(this.a)
- 变量如何声明到global上
- 只有特别重要的变量才能声明到global,这是为了防止变量污染
- 语法:
global.变量名 = 变量值
global.a = 10;
console.log(global.a);