js中Object类型的一些特点

来源:互联网 发布:宜家婴儿床 知乎 编辑:程序博客网 时间:2024/04/24 14:52

在javascript中,可以通过构造方法和对象字面量的方式定义对象。

前者通过实例化一个对象,再在这个对象的基础上添加属性和方法,如: 

这种方法简单,直接,但感觉也太随意了,当需要定义大量的属性或方法时,会给人一种凌乱不堪的感觉。

我自己就更偏向于以对象字面量的方式来定义,如上面这个例子,可以这样写: 

这种方式看起来非常清晰,一目了然。我觉得非常好,另外,很多优秀的框架利用JS对象的这个特性来实现可选参数机制,特别是一个函数带有大量的可选方法时,将可选参数以一个对象字面量的形式传入,再在函数里面作处理,是非常好的选择。下面是一个关于可选参数的例子:

 

另外,关于取对象属性的问题,也有个地方值得一提。

取一个对象的某个属性,有两个方法:一是最常见的用点号(.)来取,如person.name,就是取对象person的name属性;其实还有另一种方法,就是用中括号([])来取,如取前面所述的person.name,也可以写作person["name"],当然,这样写不符合其它OOP语言的习惯,所以这种写法也并没有多少人喜欢用,但值得注意的是,当属性名是变量的时候,点号取属性值法不能或者说只能通过一些HACK来取相应的属性值,而中括号法则能很直观,简单地实现。如:

 

看到了吗?这就是差距了。呵呵