JavaScript ----------------- 寄生式继承

Posted czhyuwj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript ----------------- 寄生式继承相关的知识,希望对你有一定的参考价值。

寄生式继承
  寄生式继承是于原型式继承紧密相关的一种思路。寄生式基础的思路与寄生构造函数和工厂模式类似,既创建一个仅用于封装继承过程的函数,该函数内部以某种方式来增强对象,最后再像真地是它做了所有工作一样返回对象。
以下代码示范了寄生式继承模式。


 function object(o){
   function F(){

   }
  F.prototype=o;
   return new F();
 };



function
createAnother(original){ var clone = object(original); // 通过调用函数创建一个新对象 clone.sayHi = function(){ //以某种方式增强真个对象 alert("hi"); } return clone; //返回这个对象 }

 


在这个例子中,createAnother() 函数接收一个参数,也就是将要作为新对象基础的对象。然后把这个对象(original)传递给object()函数,将返回的结果赋值给clone。再为其添加一个sayHi方法,最后返回clone对象。
可以像下面这样使用 createAnother()方法

 var person={
            name:"Nicholas",
            friends:["Shelby","Court","Van"]
       }
 var now = createAnother(person);
 now.sayHi(); // hi

通过createAnother() 基于person对象返回的一个新对象------ now ;不仅仅拥有person对象的全部方法和属性,还拥有自己的sayHi方法;

在主要考虑对象而不是自定义类型和构造函数的情况下,寄生式继承也是一种有用的模式。前面示范继承模式时使用的object()函数不是必需的;任何能够返回新对象的函数都适用于此模式。

 注意:使用寄生式继承方式来为对象添加函数,由于不能达到函数复用,导致效率变低,这与构造函数模式类似。

以上是关于JavaScript ----------------- 寄生式继承的主要内容,如果未能解决你的问题,请参考以下文章

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法

JavaScript

JavaScript