闭包实现原理
当某个函数调用时会创建一个执行环境以及作用域链,然后根据arguments和其它命名参数初始化形成活动对象。
在外部函数调用结束后,其执行环境与作用域链被销毁,但是其活动对象保存在了闭包之中,最后在闭包函数调用结束后才销毁
闭包的实现
在函数中定义函数,并且内部函数引用了外部函数的变量,最后内部函数被返回
闭包的作用
我们的函数可产生类似于块级作用域的东西,内部的变量外部不可访问,但是我们需要提供访问的接口,这个接口的实现便依赖于我们的闭包
闭包的问题
闭包的使用上需要注意,因为他会增大内存的负担,对性能有一点影响,另外闭包有可能会有一些容易出错的场景。
call 和 apply 的区别是什么
call与apply是函数都具有的一个方式,其作用是可以改变其this的指向,其调用方式有所不同。
call传递参数,apply以数组形式传递与arguments是一对好基友,建议使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。