Nodejs中的this详解

简介: 以下内容都是关于在nodejs中的this而非javascript中的this,nodejs中的this和在浏览器中javascript中的this是不一样的。1、全局中的this默认是一个空对象。

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

1、全局中的this默认是一个空对象。并且在全局中this与global对象没有任何的关系:如下

console.log(this); {}
this.num = 10;
console.log(this.num); 10
console.log(global.num); undefined
2、在函数中的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();
3、构造函数中的this
function Fn(){
this.num = 998;
}
var fn = new Fn();
console.log(fn.num); 998
console.log(global.num); undefined
在构造函数中this指向的是它的实例,而不是global。
4、,全局中的this指向的是module.exports。
this.num = 10;
console.log(module.exports); {num:10}
console.log(module.exports.num);

相关文章
|
2月前
|
JavaScript
NodeJs的安装
文章介绍了Node.js的安装步骤和如何创建第一个Node.js应用。包括从官网下载安装包、安装过程、验证安装是否成功,以及使用Node.js监听端口构建简单服务器的示例代码。
NodeJs的安装
|
2月前
|
Web App开发 移动开发 JavaScript
|
2月前
|
JavaScript Linux API
安装NodeJs,好啊好啊
安装NodeJs,好啊好啊
|
JavaScript 前端开发 中间件
Nodejs 学习
Nodejs 学习
70 0
|
Web App开发 JavaScript 前端开发
快速掌握Nodejs安装以及入门
官网:[http://nodejs.cn/](http://nodejs.cn/) Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
252 0
快速掌握Nodejs安装以及入门
|
JavaScript 前端开发 API
7天学会NodeJS!
大家好,我是零一,今天分享一个开源免费的Node教程资料 《7天学会NodeJS》,它出自于阿里巴巴国际站前端技术部
1149 1
7天学会NodeJS!
|
SQL JSON JavaScript
NodeJs
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine
|
缓存 监控 负载均衡
为什么 Nodejs 这么快?
如果对 Node.js 的流行感到震惊,那么并不意外。Node.js 自 2009 年诞生以来就席卷了在线和应用程序开发领域,成为最受欢迎的开发环境。
478 0
|
JavaScript 前端开发 网络协议
nodejs系列
nodejs系列
|
资源调度
NodeJS
NodeJS
132 0