JavaScript实验:用字面量创建对象

JavaScript中可以用字面量来直接创建一个新对象:

var obj = {a:27, "b":99};  

如上所述,在用字面量来创建对象的时候,对象中的property定义可以用单引号或双引号来包括,也可以忽略引号。不过,当property中出现空格、斜杠等特殊字符,或者使用的property与JS关键词冲突时,则必须使用引号。

在用字面量来创建对象的时候,property可以是空字符串,property中也可以出现空格:

//empty string is allowed as object property
var o = {"":88, "p":99};  
console.log(o);//Object { =88, p=99}

//spaces can be included in property
var o2 = {"good score":99, "bad score":52};  
console.log(o2);//Object {good score=99, bad score=52}  

值得注意的是,即使使用的字面量相同,每次使用字面量时,JavaScript都会创建一个全新的对象:

//every object literal creates a new and distinct object.
var x = {a:18, b:28};  
var y = {a:18, b:28};  
console.log(x === y);//false  

在字面量中,如果最后多出一个逗号(“}”字符前出现”,”),那么有一些JavaScript解释器将报错。事实上,在IE7中,这种行为将导致浏览器假死等问题。在ECMAScript 5标准中,”}”字符前出现”,”是合法的,该逗号会被直接忽略掉。

本文实验代码: http://jsfiddle.net/cshao/EREfk/

Chuan Shao

Read more posts by this author.

Shanghai

Subscribe to Chuan's blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!