《JavaScript高级程序设计(第3版)》有个陌生的新词:对象字面量,无法理解。看了一下英文原版,英文是object literal ,还是不太理解。后来想明白了,主要是literal 这个词不好理解。它是什么意思呢?我们说话时,有时会使用比喻或隐喻,比如我们说雄鹰展翅飞,一般指的不是天上有只鹰在飞,一般是形容一个人胸怀大志,而如果用了literal ,它的意思就是,就是字面上的意思,没有比喻。比如,还是说雄鹰展翅飞,我并不是在描述某个人像雄鹰一样自由飞翔,而是天上真的有一只雄鹰在飞,这就是字面意思。再比如,我说东风41在以超音速的速度前进,这不是在形容它速度快,而是真的超音速,这就是字面意思。但是在汉语中,这种说法似乎很少用,所以也造成了“对象字面量”的难以理解。

对象字面量,就是根据字面上显示的那些值,来定义对象。如果用常规的定义对象的方法:

var person = new Object()

这时会默认有很多关于Object的方法会自动被定义给person,这就相当于隐喻。

而如果使用了对象字面量:

var person = {

  name:"张飞",

  age:40

}

它是根据字面上的这些值定义出来的对象,所以称为“对象字面量”法。

05-11 19:45