前端面试题


闭包实现原理

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

闭包的实现

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

闭包的作用

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

闭包的问题

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

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


发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>