作为一门面向对象或者说基于对象的语言,必须要深刻理解javascript中对像的概念,下面就以空对象
和空的对象来展开对javascript对象的探讨。
我们说在javascript中有一种特殊的数据类型叫做Null,它只有一个值即null,表示一个并不存在的对象。
有时候这是非常有用的,最明显的例子是在原型链中,最顶端的原型对象一定是一个空对象即null。我们可
以用Object.prototype.__proto__===null来验证。空对象本身并没有什么意义。我们要讨论的是空的对象,也
就是不包含任何属性和方法的对象,这里的属性和方法是指自定义的,而不是原生的,我们可以通过对象字面
量来得到一个空的对象var obj={};或者是通过构造函数Object,即var obj=new Object();这个对象是其他一切对
象的基础,包括数组对象,函数对象等等。这个对象拥有最少的也是最重要的属性和方法。而且这些属性和方
法是从Object的原型对象中继承的。
我们也知道,除了这个类型的对象,javascript中还拥有其他几种类型的对象,比如函数对象、数组对象、
正则对象等等,这些对象除了具有自身继承自各自构造函数原型对象的属性和方法外,还拥有从空的对象中
集成的方法。也就是说其他对象.__proto__.__proto__===Object.prototype。
也就是说,原型对象的属性和方法在内存中永远只有一份,这就从另一个角度实现了代码重用和效率的提
升。这就是javascript面向对象的实现方式。