看了阮一峰老师的博客上说 ES6 为了改变这一点,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩。 那问题来了不属于顶层对象的属性那属于谁?
2 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
为什么非要属于谁呢?
如果函数里定义一个变量,这个变量属于函数吗?
function foo() { var a = 'bar'; return a; }
你能通过 foo.a
访问 a
的值吗?不能。
全局变量只是不再作为全局对象的属性而存在了,但是依然在全局作用域中。
添加回答
举报
0/150
提交
取消