摘要:
今天同事出了个JS题目,如下:[代码]很多人都以为显示的是"2"和"1",理由是2个x的声明是在不同的作用域里面,但是实际的结果其实为"2","2",这个是为什么呢?在网上查阅资料给出了解释:作用域ECMAScript 只有公用作用域对 ECMAScript 讨论上面这些作用域几乎毫无意义,因为 ECMAScript 中只存在一种作用域 - 公用作用域。ECMAScript 中的所有对象的所有属性和方法都是公用的。因此,定义自己的类和对象时,必须格外小心。记住,所有属性和方法默认都是公用的!闭包ECMAScript 最易让人误解的一点是,它支持闭包(closure)。闭包,指的是词法表示包括不 阅读全文