NodeJS中变量的作用域
NodeJS中的变量可分为三种类型
- 局部变量,作用域:定义该变量的函数内
- 局部全局变量,作用域:定义该变量的JS文件
- 公共全局变量,作用域:程序内可访问global对象的任何一个地方
5 回复
我覺得2和1沒有本質區別,因爲模塊就是一個函數,而且函數是可以嵌套的。
1、2、3本质上都没什么区别,因为JS中只有对象。之所以人为分为几个类型,我觉得,主要是帮助程序员保持思路清晰,尽量避免错误。
与其说NodeJS中的变量不如说v8、js中的变量?若它们之间有区别,则区别在哪儿呢?
一般JS文件中的全局变量会直接进入global对象,NodeJS把JS文件封装到了函数内,不会进入global对象。
prototype 是天生全局的,js本身还在,所以理论上,所谓的变量域是可以公开在prototype里的,
比如 a.js 中,有一个A 的变量,可以使用 string.prototype.getA=function(){return A},这样可以把A公布在原型链上,其它引入的模块可以直接通过 原型链 取到内容,而不用每次new 传递。