JavaScript 中的存取器

在 ES5.1 中,定义了对象的两种存取器实现方式,对象直接量语法与Object.defineProperty()方法

直接量语法

定义存取器属性最简单的方法是使用对象直接量语法的一种扩展写法:

查看全文

JavaScript 的作用域链浅析

JavaScript 是基于词法作用域的语言:通过阅读包含变量定义在内的数行源代码就能知道变量的作用域。

一些类 C 的语言是使用块级作用域(block scope),花括号内的第一段代码都具有各自的作用域,而且变量在声明它们的代码之外是不可见的。

而 JavaScript 中没有块级作用域,取而代之地使用了函数作用域(function scope),即词法作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义。词法作用域意味着变量在声明之前甚至已经可用,JavaScript的这个特性被非正式地称为声明提前(hoisting),如下代码:

继续阅读