NodeJS中变量的作用域
发布于 13 年前 作者 alli 20514 次浏览 最后一次编辑是 8 年前

NodeJS中的变量可分为三种类型

  1. 局部变量,作用域:定义该变量的函数内
  2. 局部全局变量,作用域:定义该变量的JS文件
  3. 公共全局变量,作用域:程序内可访问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 传递。

回到顶部