1顶层对象,在浏览器环境指的是window对象。在Node指的是global对象。ES5中,顶层对象的属性和全局变量是同一个概念。
2.顶层对象的属性与全局变量挂钩,被认为是JavaScript语言最大的设计败笔之一。由此而带来的问题有
2.1 无法在编译时报出变量未声明的错误。只有运行时才能知道
2.2 码农很容易创建全局变量;
2.3 顶层对象的属性,在哪里都可以读写,这样不利于模块化编程。
2.4window对象有实体含义,指的是浏览器的窗口对象。顶层对象是一个实体含义的对象,这是不合适的。