采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
let 就算在外面定义,也不是全局变量吗?
let 在全局定义,就是全局变量。
那fn1执行,this.a 是undefined
不要用 this.a ,直接取 a 就行。在你的代码中,this.a 相当于 window.a 。而这里定义了 let a = 10 它仅仅是全局作用域的变量,并不是 window 的属性,所以 this.a 取不到。
非常感谢老师回答,总结: var声明全局,会挂在window,可以用this取, let 和 const 声明全局,不会挂载window中,不能用this,挂载Script的块作用域
function
fn1(){}
fn2(){}
var
b
let a = 10
//用let声明的a不会在window上创建属性
a = 100
//用var声明实际就是 window.a = 100
fn1()
//这里this.a 实际上是window.a
b=20
fn2()
登录后可查看更多问答,登录/注册
针对时下面试高频考点,帮助新人js面试快速通关
1.7k 17
1.9k 11
1.4k 11
1.3k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号