摘要: 每个函数都有一个prototype的属性,当我们以这个函数为构造函数创建实例时(即用new的形式),创建出来的这个对象是没有prototype的属性的。以下代码为例:在console里进行调试cf 拥有一个prototype的属性,这个属性就叫做原型。这个原型本身是一个对象cf{},我们叫它原型对象。cf 的原型对象有一个constructor的属性,它就是构造函数。我们可以看到,这个构造函数是cf本身。(当然它还有一些别的属性。)cf1 作为 cf 的实例,它拥有了cf.prototype里的所有属性。把cf1展开看一下:可以看到cf1 有一个隐式属性_proto_,这个属性是无法通过ECM 阅读全文
posted @ 2013-07-02 17:36 misa 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 语言 = 数据结构 + 算法。首先对ECMA的数据结构做一个了解。Javascript是一门高度抽象的面向对象的语言,一切皆对象。1、什么是对象 ?(注意这里的对象是object,不是内置类型Object,注意区分大小写)一个ECMA的程序是由许多可以互相通信的object组成。每个object是由一系列的属性(property)组成。每个property可以看成一个容器,这个容器也具有一些属性,这些属性叫作attribute。这个容器里存放的东西可以是其它的object,原始值(primitive value)或函数(function)。每个object是ECMA的内置类型(built-in 阅读全文
posted @ 2013-07-02 17:33 misa 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 差不多一星期,ECMA初读完了~初读过程中跳过了一些难理解的地方和很多细节部分。接下来分几篇对ECMA重新细读,同时做一个总结。一、什么是ECMAScript(以下简称ECMA),JAVAScript与ECMA的关系JavaScript是一门面向对象的动态语言。静态语言(像Java,C),是需要编译器编译后执行的,而JavaScript是由解释器直接解析运行的。这种解释器即是Javascript引擎,比如Chrome的V8。Javascript的运行环境,是由宿主环境和执行期环境构成的。宿主环境是外壳程序生成的(这里以Web浏览器为例),执行期环境则是由这个引擎生成的。这两个环境分别是干嘛的呢 阅读全文
posted @ 2013-07-02 17:29 misa 阅读(290) 评论(0) 推荐(0) 编辑