既然提及了模块化,就来探讨一下作用域,在研读这段的时候,
原本觉得这没什麽,应该很好理解,
但我错了…,越看越雾飒飒…,所以今天要跟着参考书以及网路上的资料及范例,
来熟悉理解作用域的知识点。
在参考书上实作得知Nodejs与 JavaScript中的this
指向有些不同。
实际操作看看,Google首页 ->右键[检查] -> Console
输入
console.log(this);
是滴~对JavaScript来说,window是它的全局对象
。
而Nodejs又是另一回事了,对於Nodejs而言,
在Node控制台或脚本文件,这两个针对的指向是不同的。
首先,先测试在终端机的环境下。
直接在终端机输入node – v
指令,接下来一样在终端机操做指令,
输入
console.log(this);
Node输出:
Node在"终端机"的环境中,全局的this指向了global对象
。
进一步的执行下面的程序码:
var Nicole = 1000;
console.log(this.nicole);
console.log(global.nicole);
输出结果:
Node在终端机中,全局变量会被挂到global下
。
再来测试在脚本文件的环境下,一样直接输入
console.log(this);
输出的结果:
是一个空的对象 ( { } 代表为空)
接着也一样输入以下的程序码:
//(变量未被挂载)
var nicole=1000;
console.log(this.nicole);
console.log(global.nicole);
输出结果:
皆是undefined
,这代表变量nicole并没有被挂到全局的this或 global对象
。
但若是我把var关键字拿掉後,
此时的nicole可以被挂到global对象,但全局的this还是undefined。
其实在Node脚本文件定义全局的this是指向在DAY23: 自定义模块中有提到的module.exports
总结:
Node在"终端机"的环境下,全局this与global对象是等价的
,可以将他们看成是一样的东西。
Node在"脚本文件"的环境下,全局的this是指向module.exports,与glabal并不等价
。
参考资料:
李锴 着 <<新时期的Node.js入门>>
<<: DAY21-EXCEL统计分析:单因子完全随机集区实例
>>: Progressive Web App Web Push: 网站推播通知服务器实作入门 (23)
先来复习一下~在产出Message前我们会需要什麽东西呢? HashID: [Day 03]取得No...
Agenda 资安宣言 测试环境与工具 技术原理与程序码 References 下期预告 资安宣言 ...
感谢大家花宝贵的时间阅读这系列的文章,由於篇幅有限,其实还有很多主题无法尽录,不过希望阅读过後,大...
最近实在是有点折磨,刚把民航局的案子吿一个段落,最近接到一个大案子,每天要腾个一小时来处理;晚上 I...
while 是循环结构(while一定要小写),while 後面搭配布林值(boolean)并用,F...