甘露模型,用prototype更好地去实现对象继承

在上一篇博文中,我们阐述了如何用prototype实现继承,这个继承用于函数继承函数,但在对象中可不可以实现对象继承对象呢?答案是肯定的。其中的原理也是效仿函数继承函数。

思维过程:

函数继承函数,我们要在子函数中的prototype对象,用父亲函数的实例化将其赋值。这样子函数的prototype才拥有父亲的prototype方法。所以我们就想,在对象中,我们可以借助一个中间的函数,把该函数的prototype用父类对象直接赋值,然后子类函数便拥有了父类对象的属性。最后,我们把这个中间函数的对象实例返回给子类对象。这样就完成了整个对象的继承。

具体实例如下:(不得不说,这是一个创举!!)

  
  
  
  
  1. function New(superclass,args){ 
  2.  
  3. function _new(){ 
  4.  
  5. superclass.Create.apply(this,args) 
  6.  
  7. }; 
  8.  
  9. _new.prototype=superclass; 
  10.  
  11. return new _new(); 
  12.  
  13.  
  14.  
  15. var father={ 
  16.  
  17. Create:function(name){ 
  18. this._name=name; 
  19. }, 
  20.  
  21. say:function(){ 
  22. document.write("my name is "+this._name); 
  23.  
  24.  
  25.  
  26. var son=New(father,["son"]); 
  27. son.say(); 

 

你可能感兴趣的:(JavaScript,继承,prototype)