js 内部函数访问外部函数公共变量

JavaScript019

js 内部函数访问外部函数公共变量,第1张

话是这么说没错,不过你要明白js的作用域才行。js没有块作用域,只有函数作用域,就是说一个函数内部是一个作用域,如果它包含在其它函数内,那么它可以用外部的变量,但是外部不能用它的变量;简单的说嵌套的函数里,作用域也还是嵌套的。

name2未定义,这个很明显,就不说了;this.getInner很明显在this.innerFunc外部,当然不能利用里面的函数的变量,好吧,我感觉这个也很明显;你确定你访问的是外部函数的成员吗?

JavaScript 定义方法的内部变量不声明,直接使用就是全局变量(公共变量),比如:

function method(){

var privateNum = 1

publicNum = 2

}

这个方法中用var定义的就是局部变量,privateNum就是局部变量;没有用var声明的就是全局变量(公共变量),publicNum就是全局变量(公共变量)

没有共享一个全局变量,js所谓的全局变量指的是在页面下,作用范围是window区域,是一个页面里面的。当每一个用户打开一个页面,每一个页面都加载运行这段代码,他们的电脑不互相干扰。而你的迷惑之处在于把js的全局变量与后台语言的全局变量搞混淆。后台语言的全局变量是在服务器运行的,服务器只有一个,而且处于不中断运行状态,所有用户都需要访问同一个服务器,服务器里面的全局变量是共享的,这个需要去多了解一下服务器的程序加载运行过程和堆栈的分配。而js是由服务器传送到用户电脑上才开始被客户端加载运行。两个完全不同的机制。你完全可以打开同一个页面关闭,再打开不就知道答案了吗?何必如此多问?