《ECMAScript standard specification》阅读总结

用近一个月的时间浏览完了ECMAScript,一个基于JScript和javscsript的脚本语言标准(看microsoft的c# references的时候发现c#也基于ECMAScript。。。。)【这里理解有误,更正如下:c#基于ECMA-334 standard 和 ISO/IEC 23270 standard,而不是ECMAScript】
按照惯例,总结下。
看的是ECMA262,3rd,出自1999年。
ECMAScript standard specification主要目的是规范类似脚本语言的实现方式。所以里面有大篇幅的实现细节(steps of implementation),这些部分除了很重要的实现(比如function.call())之外。。我都忽略了,毕竟不是编译器的实现者。
对于程序员来说,重点有以下几点:type,execution context,function define,native objects。
  • type用来存储值(a value takes on one of the types),ECMAScript一共定义了9种类型。
其中比较重要的是object type和纯粹为了解释而存在的类型(types that purely for expository purpose)
object type 是一个对于名字,值,属性的无序集合。
ECMAScript里面OO的实现是基于object的,ECMAScript里面没有类的概念。产生对象的是一个构造器(constructor),构造器也是对象。
ECMAscript的继承基于原型机制(prototype),每一个对象含有一个prototype的属性,引用这个对象的原型。
区分构造器对象,函数对象和普通对象的不同点就在于里面是不是实现了construct和call方法。
为了解释而存在的类型有,reference,list,completion。分别用来引用,参数列表,解释状态。
  • execution context
重点是三个对象:global object,this和arguments object
以及开始一次解释执行的时候,会发生什么(比如决定作用域,实现变量,绑定this指针)
  • function define
主要讲定义一个function的时候,编译器的动作。已及call和construct两种方式下,function 对象的不同动作。
  • native object
ECMAScript把对象分为native object和host object。native object包括内置对象(build-in object)已经运行过程中,通过内置对象构造的对象。host object是宿主对象,和编译器的实现有关,所有不是naitve object的对象都是host object。
ECMAScript一共提供了11种native object,其中global和math是唯一对象(unique object),运行期间只允许一个实例。
这一章详细描述了对象的行为,包括方法的调用,抛出异常,构造和调用等。在此不加赘述。
posted @ 2011-04-13 12:18  dk647  阅读(514)  评论(6编辑  收藏  举报