name2未定义,这个很明显,就不说了;this.getInner很明显在this.innerFunc外部,当然不能利用里面的函数的变量,好吧,我感觉这个也很明显;你确定你访问的是外部函数的成员吗?
JavaScript 定义方法的内部变量不声明,直接使用就是全局变量(公共变量),比如:function method(){
var privateNum = 1
publicNum = 2
}
这个方法中用var定义的就是局部变量,privateNum就是局部变量;没有用var声明的就是全局变量(公共变量),publicNum就是全局变量(公共变量)
没有共享一个全局变量,js所谓的全局变量指的是在页面下,作用范围是window区域,是一个页面里面的。当每一个用户打开一个页面,每一个页面都加载运行这段代码,他们的电脑不互相干扰。而你的迷惑之处在于把js的全局变量与后台语言的全局变量搞混淆。后台语言的全局变量是在服务器运行的,服务器只有一个,而且处于不中断运行状态,所有用户都需要访问同一个服务器,服务器里面的全局变量是共享的,这个需要去多了解一下服务器的程序加载运行过程和堆栈的分配。而js是由服务器传送到用户电脑上才开始被客户端加载运行。两个完全不同的机制。你完全可以打开同一个页面关闭,再打开不就知道答案了吗?何必如此多问?