一、原型式继承
该继承模式是由道格拉斯*克罗克福德在2006年提出的实现继承的方法.
模式的基本思路:借助原型可以基于已有的对象创建新的对象,同时还不必因此创建自定义类型。
代码如下:
function object(o) { function F() { //定义一个F类型的对象 this.name="111"; } F.prototype=o;//使F的原型对象指向传入对象,也就是说F继承了传入的对象,也相当于用传入的对象重写了F的原型对象 相当于如下代码/* F.prototype={ name:"张三", friends:["李四","王五"] };*/ return new F();//返回F对象 注意:此时的原型对象里有一个指向F构造函数的constructor所以这个对象既包括F原型对象也包括F构造函数里面的属性}var person={ name:"张三", friends:["李四","王五"]};var person1=object(person); person1.name="Plugin"; person1.friends.push("赵六");var person2=object(person); person2.name="Kobe"; person2.friends.push("Durrant"); alert(person1.friends); //输出:李四,王五,赵六,Durrant