Nodejs中的this

日期: 2020-01-25 03:56 浏览次数 :

时间: 2019-06-14阅读: 237标签: this

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

在大局中的this

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

大局中的this暗许是一个空对象。况且在全局中this与global对象未有任何的涉嫌,那么全局中的this毕竟指向的是何人?在本章节后半有个别大家会讲课。

在函数中的this

function fn(){ this.num = 10;}fn();console.log(this); {}console.log(this.num); undefinedconsole.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); 998console.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