作用域问题

来源:6-3 什么是闭包?闭包会用在哪里?

Evonne_xy

2022-02-09

const result = (function immediate(number) {
  const message = `number is: ${number}`;
  return message;
})(100);

老师您好 我在网上看到了这道题 这道题的答案是:immediate 无法访问外部作用域中的任何变量。
于是我试了一下我发现他是可以访问的呀,试代码如下

let age = 12//定义一个外部的变量

const result = (function immediate(number) {
  const message = `number is: ${number}`;
  console.log(age) //试试能不能打印出,结果打印了12
  return message;
})(100);

不理解答案为什么不能访问外部变量,我定义一个age,发现他是可以访问到的呀?麻烦老师讲一下 谢谢

写回答

2回答

双越

2022-02-10

我感觉,应该把下图的“无法”改成“没有”

//img.mukewang.com/szimg/62045c6109d7a87515421268.jpg

0
1
Evonne_xy
好的 谢谢老师
2022-02-10
共1条回复

双越

2022-02-09

我也很纳闷。

任何一个函数,都可以顺着作用域链去访问外部变量。

不知道你是从哪里看的这个说法,你可以把网址发给我,我再帮你看下。

0
1
Evonne_xy
网址: https://blog.51cto.com/u_15366969/4167672 这道题,网上好多,我搜了一下,都是这个答案。于是我Google了一下,英文答案也是这个。我也不太理解。辛苦老师看一下啦,感谢
2022-02-09
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程