《JavaScript高级程序设计(第3版)》有个陌生的新词:对象字面量,无法理解。看了一下英文原版,英文是object literal ,还是不太理解。后来想明白了,主要是literal 这个词不好理解。它是什么意思呢?我们说话时,有时会使用比喻或隐喻,比如我们说雄鹰展翅飞,一般指的不是天上有只鹰在飞,一般是形容一个人胸怀大志,而如果用了literal ,它的意思就是,就是字面上的意思,没有比喻。比如,还是说雄鹰展翅飞,我并不是在描述某个人像雄鹰一样自由飞翔,而是天上真的有一只雄鹰在飞,这就是字面意思。再比如,我说东风41在以超音速的速度前进,这不是在形容它速度快,而是真的超音速,这就是字面意思。但是在汉语中,这种说法似乎很少用,所以也造成了“对象字面量”的难以理解。
对象字面量,就是根据字面上显示的那些值,来定义对象。如果用常规的定义对象的方法:
var person = new Object()
这时会默认有很多关于Object的方法会自动被定义给person,这就相当于隐喻。
而如果使用了对象字面量:
var person = {
name:"张飞",
age:40
}
它是根据字面上的这些值定义出来的对象,所以称为“对象字面量”法。