博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs中的this详解
阅读量:6335 次
发布时间:2019-06-22

本文共 909 字,大约阅读时间需要 3 分钟。

以下内容都是关于在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);

转载地址:http://dksoa.baihongyu.com/

你可能感兴趣的文章
关于浮点数精度的问题
查看>>
第四十八课、替换对话框的设计与实现------------------狄泰软件学院
查看>>
集成 dubbo 微服务
查看>>
C++11 占位符placeholders和函数bind用法
查看>>
驱动编译的时候注意编译工程选项
查看>>
使用NSData来加载文件
查看>>
嵌入式开发必备知识点
查看>>
C#实现WinForm下DataGridView控件的拷贝和粘贴
查看>>
Django-rest-framework 接口实现 ModelSerializer 使用
查看>>
NLPIR-ICTCLA2018分词用户大会线上抢票报名开始
查看>>
排序算法复杂度/稳定性总结
查看>>
JDBC篇:简单实现
查看>>
2016-7-14(日)
查看>>
AE基础知识之地图浏览
查看>>
Entity Framework code first 手动修改数据库的问题
查看>>
GDB + gdbserver 远程调试mediaserver进程
查看>>
构建之法第八章学习心得
查看>>
【leetcode】Largest Plus Sign
查看>>
【leetcode】421. Maximum XOR of Two Numbers in an Array
查看>>
SVN服务器搭建和使用(一)
查看>>