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)