什么是 JavaScript 的闭包(closure)?为什么/什么时候要用闭包?
What is a JavaScript closure? Why/when would you use it?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: easy
标签: Salesforce, Closure, Scope
目标岗位: UI Developer, Frontend Engineer, Web Developer
目标公司: Salesforce
参考答案摘要
答案 闭包 指:函数能够“记住并访问”它创建时的词法作用域(lexical scope),即使该函数在其词法作用域之外执行,也仍然能访问外层变量。 为什么有用 封装私有状态 :把状态藏在外部不可直接访问的作用域里(类似私有变量)。 回调/异步保持上下文 :事件处理、定时器、Promise 回调里需要读写外部变量。 函数工厂 :根据参数生成带有“记忆”的函数。 经典例子:计数器 function c...
答题技巧
技术面试题建议先理清思路再作答,从基础概念讲起,逐步深入。可以结合实际项目经验解释技术原理,展示你的理解深度和实践能力。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案、收藏题目并进行模拟面试练习。