闭包【JS面试题】

作者: 我是小野森森分类: 野生技能协会 发布时间: 2021-04-14 09:00:00 浏览:27981 次

闭包【JS面试题】

左柒奚:
如果面试官问到闭包 关键词:词法作用域 加分项:执行上下文机制 V8垃圾回收机制

【回复】回复 @谐本 : 我今天第一个js问题是闭包,难蹦。
【回复】请问一下,这个具体怎么回答好一点啊?如果面试问到你是怎么理解闭包的。
【回复】回复 @从木 :你是刚毕业吗。。
快乐亿点点:
所以说 所以说 函数返回值内的函数的自由变量,是找它定义时候的上级。[微笑]

路人菌超弱的:
函数的作用域是在定义时候定义的,也即是“静态”作用域;JS里跟调用位置相关的概念是this指向

i99902:
意思是函数本身所处的作用域 ,函数可以获取该作用域下的变量咩

爱磨牙的鲸鱼:
什么是闭包?闭包有哪些实际运用场景?闭包是如何产生的?闭包产生的变量如何被回收?其实,拿着这些问题好好想想,这些问题都只是一个问题。闭包的底层实现原理,面试官听够了像“function里面return了一个子函数,子函数访问了外面那个函数的变量”的解释 他更期待的答案是,你给人家作用域链是如何产生的。解释一下js执行上下文的创建、执行过程。解释一下闭包所产生的变量放在哪了。[doge](狗头保命)

【回复】哥们,能不能深入讲讲嘞,菜鸟表示不懂[笑哭]
【回复】回复 @空瞳ov :闭包本是一种*超级简化的面向对象编程方法*! 当初JS的开发者设计了prototype 的面向对象编程,他觉得这个方法和经典的面向对象编程相比较灵活,简单,高效,他很得意! 但是他后来发现这玩意对于简单类/接口还是有点罗嗦(因为他打字比较慢)。于是他把所有函数都设计了闭包:没错,js里面*所有*函数即可称作函数也可称作闭包类。 闭包本质是实例化的对象,*外层函数*(也叫闭包父类)本质是经典面向对象编程的构造函数,返回的*内部函数*本质是经典面向对象编程的的*成员函数*,内部函数中*未定义*就使用的变量本质是经典面向对象编程中的*保护成员变量*:但是这些变量在js专业术语中叫“自由变量”, 即外层函数定义的变量<包括参数>对于他自己的*内部函数*是可以自由访问的,所以在*内部函数*中他们叫*自由变量*。 所以你看这就是一种超级简单的面向对象编程方法(或者说面向接口编程方法),你只要每次给外层函数(闭包类)传不同值的参数,实际就是实例化了*闭包类*,外层函数就给你返回了一个实例化的接口(注意返回的内部函数依然既是函数又是闭包类)... 是不是很简单?
缩影5188:
就知道有问题进你的视频总没错,短小精炼,一句话就捅穿了本质 ,有系列型的课程吗

不会打游戏的NPC:
Js高程里是这么说的:一个有权限获取另一个函数作用域中变量的函数,就是闭包

迪哥1230:
牛逼!!!言简意赅!!!秒懂!!!!!!

故人时光琉璃:
第二个例子。test和fn之间的数据并没有引用关系,这也算闭包?

【回复】虽然过去一段时间了,但你应该也去了解一下闭包的特点,我都还记得有一点是,函数内可以调用函数外部的变量[奋斗]

知识分享官 编程 WEB 经验分享 JAVASCRIPT JS 前端 VUE WEB前端 打卡挑战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!