结果是:

'undefined' 18 19

解释:

调用 foo(2) 时,函数 foo 返回了 'undefined',因为它没有显式地返回任何值。但是,在 foo 中创建了一个变量 num 和一个函数 bar。bar 接收参数 y,并返回 x+y+(++num) 的结果。注意,++num 是在返回前递增 num 的值。所以 bar(10) 的结果为 2+10+6=18。

在调用 bar(10) 时,它使用在 foo 中存储的 x 和 num 的值。num 的值已经被递增为 6,所以 bar(10) 的结果为 2+10+6=18。

在再次调用 bar(10) 时,num 的值已经被递增为 7,所以 bar(10) 的结果为 2+10+7=19。

JavaScript 函数闭包示例:理解 num 和 bar 的作用域

原文地址: https://www.cveoy.top/t/topic/oIxj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录