第3章 Object扩展和性能及Web应用之神兵利器
Object和Function有着异曲同工之妙,它们都可以有属性和方法。不过却有着极大的差别,请看表3-1。
表3-1 Object和function的一些比较
|
区 别 |
Object |
Function |
|
定义后 |
不能再使用new创建对象实例,可以赋值给其他变量,多个变量同时引用一个对象,或者克隆对象 |
可以使用new创建多个对象实例,使用时互不影响,但是使用内存也会更多 |
|
多态性 |
具备 |
具备 |
|
继承 |
无法继承,除非用复制的方式来实现 |
可以实现 |
|
toString和valueOf |
如果你不实现它的代码,别人无法通过toString、valueOf查看到你的代码 |
默认情况下,toString、valueOf是可以看到function的代码的 |
|
prototype原型问题 |
给Object原型增加方法或属性,new function出来的对象也同样有这样的方法——因此这是扩展通用对象功能的好地方 |
给Function原型增加方法或属性,Object实例对象不会有这些方法和属性 |
|
引用传递 |
支持 |
支持 |
|
数组下标运算符号的支持 |
通过设计可以支持 |
通过设计可以支持 |
|
prototype原型上扩展的属性和方法 |
Mozilla Firefox中等于给body【包含】内容的所有HTML DOM对象扩展属性和方法 |
Function原型上扩展,则不会 |
<html> |
| 回书目 上一节 下一节 |