传统的面向对象语言中,每个对象都会对应到一个类。而上一节讲this 指针时提到,JavaScript 中的对象其实就是属性(方法)的一个集合,并没有严格意义的类的概念。所以它提供了另外一种简单的方式来创建对象,即大括号({})语法:

{
    property1:statement, 
    property2:statement2, 
    …
    propertyN:statmentN 
}

通过大括号括住多个属性或方法及其定义(这些属性或方法用逗号隔开),来实现对象的定义,这段代码就直接定义个了具有n 个属性或方法的对象,其中属性名和其定义之间用冒号(:)隔开。例如:

<script language="JavaScript" type="text/javascript"> 
var obj={}//定义了一个空对象
var user=
    name:
"jack",                 //定义了name 属性,初始化为jack 
    colors:["red","green"],    // 定义了颜色数组
    hello:function(){ alert("hello,"+this.name); }  //定义了方法hello 
    sex:"male"                   //定义了性别属性sex ,初始化为sex 
}
 

user.hello();  
//调用user 对象的方法hello
</script> 

第一行定义了一个无类型对象obj,它等价于:
    var obj=new Object();

接着定义了一个对象user 及其属性和方法。注意,除了最后一个属性(方法)定义,其他的必须以逗号(,)结尾。其实,使用动态增减属性的方法也可以定义一个完全相同的user 对象,读者不妨使用前面介绍的方法做一个尝试。

使用这种方式来定义对象,还可以使用字符串作为属性(方法)名,例如:
    var obj={"001":"abc"}

这就给对象obj 定义了一个属性“001”,这并不是一个有效的标识符,所以要引用这个属性必须使用方括号语法:
    obj["001"];

由此可见,无类型对象提供了一种创建对象的简便方式,它以紧凑和清晰的语法将一个对象体现为一个完整的实体。而且也有利于减少代码的体积,这对JavaScript 代码来说尤其重要,因为要通过网络来下载,减少体积意味着提高了访问速度。