⑴ 作用域链
定义:一个函数在访问变量的时候,优先使用自己的局部变量,如果没有这个变量的申明,则向上级访问,一直访问到全局。全局都没有的话,语法错误:is not defined。
⑵闭包 (closure)
定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的就是外部函数–高阶函数
闭包的特性:
①函数嵌套函数;
②内部函数可以直接访问外部函数的内部变量或参数;
③变量或参数不会被垃圾回收机制回收。
闭包的优点:
①变量长期驻扎在内存中;
②避免全局变量的污染;
③私有成员的存在。
闭包的缺点: 常驻内存,增大内存的使用量,使用不当会造成内存泄漏。
⑶作用域:
全局作用域:window。
局部作用域:函数内部定义的。