前端面试题

闭包实现原理

当某个函数调用时会创建一个执行环境以及作用域链,然后根据arguments和其它命名参数初始化形成活动对象。
在外部函数调用结束后,其执行环境与作用域链被销毁,但是其活动对象保存在了闭包之中,最后在闭包函数调用结束后才销毁

闭包的实现

在函数中定义函数,并且内部函数引用了外部函数的变量,最后内部函数被返回

闭包的作用

我们的函数可产生类似于块级作用域的东西,内部的变量外部不可访问,但是我们需要提供访问的接口,这个接口的实现便依赖于我们的闭包

闭包的问题

闭包的使用上需要注意,因为他会增大内存的负担,对性能有一点影响,另外闭包有可能会有一些容易出错的场景。

call 和 apply 的区别是什么
call与apply是函数都具有的一个方式,其作用是可以改变其this的指向,其调用方式有所不同。
call传递参数,apply以数组形式传递与arguments是一对好基友,建议使用。

    原文作者:Doyle
    原文地址: https://segmentfault.com/a/1190000002163114
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞