对于第五题,我说一下我的理解: 首先是闭包的定义:闭包是一个函数,这个函数能够访问另一个函数作用域中的参数和变量。 而第五题中的函数是一个 IIFE 也就是立即执行的函数,返回了一个对象,这个对象中有一个 say 方法,这个 say 方法能够访问到这个立即执行的函数中的变量 test,所以 say 是一个闭包。 然后面试官说和闭包没关系的话,我觉得面试官是想让你回答 JS 的静态作用域吧,也就是 JS 中函数作用域是在函数定义的时候就决定了的,相对的有动态作用域,是函数在调用的时候才决定作用域。