首页 > 编程语言 >Nodejs中的this

Nodejs中的this

时间:2022-11-08 16:06:17浏览次数:37  
标签:console log Nodejs global module num 全局

Nodejs中的this_公众号

以下内容都是关于在nodejs中的this而非JavaScript中的this,nodejs中的this和在浏览器中JavaScript中的this是不一样的。

在全局中的this

console.log(this); {}
this.num = 10;
console.log(this.num); 10
console.log(global.num); undefined

全局中的this默认是一个空对象。并且在全局中this与global对象没有任何的关系,那么全局中的this究竟指向的是谁?在本章节后半部分我们会讲解。

在函数中的this​

function fn(){
this.num = 10;
}
fn();
console.log(this); {}
console.log(this.num); undefined
console.log(global.num); 10

在函数中this指向的是global对象,和全局中的this不是同一个对象,简单来说,你在函数中通过this定义的变量就是相当于给global添加了一个属性,此时与全局中的this已经没有关系了。

如果不相信,看下面这段代码可以证明。

function fn(){
function fn2(){
this.age = 18;
}
fn2();
console.log(this); global
console.log(this.age); 18
console.log(global.age); 18
}
fn();

对吧,在函数中this指向的是global。

构造函数中的this​

function Fn(){
this.num = 998;
}
var fn = new Fn();
console.log(fn.num); 998
console.log(global.num); undefined

在构造函数中this指向的是它的实例,而不是global。

我们现在可以聊聊关于全局中的this了,说到全局中的this,其实和Nodejs中的作用域有一些关系。

回到正题,全局中的this指向的是module.exports。

this.num = 10;
console.log(module.exports); {num:10}
console.log(module.exports.num);

为什么在全局中this会指向module.exports,那就需要先了解更多关于module.exports的相关知识了,暂时我们先了解到这里,后面有机会我们会聊到module。

Nodejs中的this_javascript_02


标签:console,log,Nodejs,global,module,num,全局
From: https://blog.51cto.com/u_15809510/5833397

相关文章

  • 【前端面试题】—53道常见NodeJS基础面试题(附答案)
    说到前端就不得不提到后端,我们给用户展示页面所需的数据正是从后端获取的,所以了解后端的运行原理和技术的实现很有必要。 Node.js是一个不错的选择,它是基于JavaScript语法......
  • nodejs Error: ENOENT: no such file or directory, open ‘input.txt‘
    nodejs运行下面代码:​​​报错:Error:ENOENT:nosuchfileordirectory,open'input.txt'解决:varfs=require("fs"); letpath=require('path');//引入p......
  • 离线安装和切换NodeJs版本
    第一步:下载好需要安装的node程序(不要用安装包,用压缩包,这是坑,安装包安装后面再说)nodejs下载地址下载好自己需要的版本   第二步:选择安装路径(建议安装之前卸载掉之前......
  • NodeJs版本管理工具
    有时候,不同的项目需要使用不同的node版本。我们可以使用nvm管理不同的node版本。下载安装nvm下载地址下载后解压直接下一步,下一步,安装完成即可注意:为避免出现bug,安装路......
  • NodeJs断点调试详细说明
    node在运行js的时候,可以传递参数让其运行在调试模式,运行在调试模式后,引擎会向某个端口发送调试相关信息。一、在devTools中调试1.在chrome中接收调试信息在浏览器上打开:ch......
  • 细说nodejs的path模块
    前言path模块是nodejs中用于处理文件/目录路径的一个内置模块,可以看作是一个工具箱,提供诸多方法供我们使用,当然都是和路径处理有关的。同时在前端开发中path模块出现......
  • 用 nodejs 搭建脚手架
    1前言1.1像我们熟悉的vue-cli,taro-cli等脚手架,只需要输入简单的命令taroinitproject,即可快速帮我们生成一个初始项目。在日常开发中,有一个脚手架工具可以用来提高......
  • 理解Nodejs中的进程间通信
    前置知识文件描述符在Linux系统中,一切都看成文件,当进程打开现有文件时,会返回一个文件描述符。文件描述符是操作系统为了管理已经被进程打开的文件所创建的索引,用来指......
  • nodejs 安装篇
    直接使用ubuntu软件源安装sudoaptupdatesudoaptinstallnodejsnpmnodejs--versionv10.19.0npm-v从nodesource安装nodejs和npm复制代码安装仓库`https:......
  • 使用nvm配置nodejs,已经nodejs使用的初始化步骤
    <-----------------------------------------nvm是什么------------------------------------------------->nvm:进行node版本切换管理手动配置nvm,需要进入地址https://gi......