ECMA学习小结(2)——一切皆对象

语言 = 数据结构 + 算法。首先对ECMA的数据结构做一个了解。

Javascript是一门高度抽象的面向对象的语言,一切皆对象。

 

1、什么是对象 ?(注意这里的对象是object,不是内置类型Object,注意区分大小写)

一个ECMA的程序是由许多可以互相通信的object组成。每个object是由一系列的属性(property)组成。

每个property可以看成一个容器,这个容器也具有一些属性,这些属性叫作attribute。

这个容器里存放的东西可以是其它的object,原始值(primitive value)或函数(function)。

每个object是ECMA的内置类型(built-in type)Object的成员。

每个primitive value是ECMA的内置类型Undefined,Null,String,Number,Boolean之一的成员。(以上即是ECMA语言的类型,ECMA还有另外一些特定类型)

function是个特殊的object,它是一个可调用的object。和一个object的属性联系在一起的function,我们叫它方法(method)。

ECMA已经定义了许多object供使用,这些定义好的object被称为内置对象(built-in object)。其中包括全局对象(global object)和异常对象(error object)。

全局对象包括:Object , Function , Array , String , Boolean ,Number , Math ,Date , RegExp , JSON

异常对象包括:Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.

(这里又出现了一个Object ,这个全局对象Object是ECMA定义好的object,是内置类型Object的成员)

(对于String,Number,Boolean。以Number为例,对var a = 1这样的代码,返回值为原始值Number value。对 var a = new Number(1),返回值则为Number对象)

 

2、如何创建对象

ECMA中规定创建对象有两种方法:字面量(literal notation),构造函数(constructor)。

比如以下代码:

在Chrome的console中进行查看

 

定义了一个未赋值的a变量,它的返回值是原始值undefined.

用字面量创建对象的方法定义了一个b,并给它传递了两个属性。(咦,这不是个JSON吗?其实我们平常所说的JSON,是指对象字面量。即Object{}这样的形式。ECMA另外规定了JSON对象,和这里的字面量不是一回事)

c是用构造函数创建的对象。构造函数是创建一个实例时用到的函数,表现形式就是 new 运算符。我们new了一个Object的实例 c。

 
P.s 关于字面量的解释
posted @ 2013-07-02 17:33  misa  阅读(259)  评论(0编辑  收藏  举报