作用域链、闭包、作用域

⑴ 作用域链
定义:一个函数在访问变量的时候,优先使用自己的局部变量,如果没有这个变量的申明,则向上级访问,一直访问到全局。全局都没有的话,语法错误:is not defined。

⑵闭包 (closure)
定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数的内部变量,且返回的那个函数在外部被执行,就产生了闭包.闭包是一个环境,具体指的就是外部函数–高阶函数

闭包的特性:

①函数嵌套函数;
②内部函数可以直接访问外部函数的内部变量或参数;
③变量或参数不会被垃圾回收机制回收。

闭包的优点:

①变量长期驻扎在内存中;
②避免全局变量的污染;
③私有成员的存在。

闭包的缺点: 常驻内存,增大内存的使用量,使用不当会造成内存泄漏。

⑶作用域:

全局作用域:window。
局部作用域:函数内部定义的。

猜你喜欢

转载自blog.csdn.net/qq_45846359/article/details/109021097
今日推荐