30.函数作用域链 (GO AO 也叫词法作用域链)、 调用栈、调用栈涉及this绑定

一:函数作用域链(词法作用域链)                        js中没有动态作用域,只有词法作用域

 函数内部声明的变量,只有通过传递参数才能互相使用,否则不行。函数内部声明的变量在AO内,不会影响全局GO中的变量,即使同名也不会影响。在函数内部可以使用全局变量,但是要注意执行顺序。如foo执行时是因为bar()调用 foo是在var a=30之上,所以在执行foo时,a预解析为undefined还没被赋值为10

  此时打印 10 ,因为先执行a=10,在执行函数。

过程 :

预解析:             GO{

      foo:function(){}

                     bar:function(){}

                     a:undefined;--->10

                   }

执行:1.bar()

                       bar{

                           AO :  a: undefined-->30

                           foo()}

            foo :console.log(a)  没找到 a  故报undefined;

GO AO也叫:词法作用域链

二:

调用栈:嵌套调用,调用一切需要执行的函数。调用栈中的调用位置决定了this的绑定

称呼; 

str叫字符串

ostr 叫字符串对象    对象才有属性与方法

包装对象:包装类将原始值包装成对象

                    

原文地址:https://www.cnblogs.com/yzdwd/p/12531059.html