382 0

原型对象只是一个参照物,这一点与类不同。当使用原型对象定义一个对象时,该对象并不会马上拥有原型对象中的属性和方法,而是在引用不属于该对象的属性和方法时,JavaScript才会去原型对象中查找是否有该属性和方法。

假设A对象的原型对象是B对象。B对象拥有color和size两个属性。那么A对象会继承B对象的这个属性。但是在定义A对象时,JavaScript并不会立刻给A对象分配color和size属性,只有在调用A对象的color和size属性时,JavaScript才会去B对象中调用这两个属性。

在这一点上,使用原型对象要比使用类节省空间。在将类实例化时,系统会为实例分配空间以便存取属性和方法。这样,每一个实例都要分配相应的空间。而使用原型对象,在创建对象时,并没有为对象分配存取原型对象属性的空间,这样,可以最大限度地节省空间。

发表评论