JS继承的几种方式,JavaScript继承方式实例

复制代码 代码如下:

关于Js继承的几种方式,总结一下,以便查看。

function parent(){
this.x=10;
}
function child(){
var parentObj=new parent();
for(var p in parentObj)this[p]=parentObj[p];
}
var childObj=new child();
alert(childObj.x);

第一种 prototype 引用型原型继承

复制代码 代码如下:

语言支持:js原生支持的继承方式 构造器的的prototype属性作为类的原型 每个该类的对象都持有一个到原型的引用 当对象中的属性不存在时 可以访问原型的属性

function parent(){
this.x=10;
}
function child(){
this.parent=parent;
this.parent();
delete this.parent;
}
var childObj=new child();
alert(childObj.x);

代码示例:

复制代码 代码如下:

function parent(){

function parent(){
this.x=10;
}
function child(){
parent.call(this);
}
var childObj=new child();
alert(childObj.x);

      this.x=10;

原型抄写

}

复制代码 代码如下:

function child(){

function parent(){
}
parent.prototype.x=1;

}

function child(){
}
for(var p in parent.prototype)child.prototype[p]=parent.prototype[p];
child.prototype.y=2;

child.prototype=new parent();

var childObj=new child();
alert(childObj.x);

var childObj=new child();

复制代码 代码如下:

alert(childObj.x);

function parent(string){
var child=new Function("this.x=10;"+string);
return child;
}
var child=new parent("this.y=20;");

第二种 复制型原型继承

var childObj=new child();
alert(childObj.y);

语言支持:js new运算符的性质 当构造函数return值为非空对象时 new表达式返回return的对象

复制代码 代码如下:

代码示例:

function parent(){
this.x=10;
}
function child(){
}
child.prototype=new parent();
var childObj=new child();
alert(childObj.x);

function parent(){

复制代码 代码如下:

        this.x=10;

function parent(){
this.x=10;
}
function child(){
var ret=new parent();
ret.y=20;
return ret;
}

}

var childObj=new child();
alert(childObj.x);

function child(){

您可能感兴趣的文章:

  • 浅谈js中的三种继承方式及其优缺点
  • Javascript中的几种继承方式对比分析
  • 浅析2种JavaScript继承方式
  • Javascript编程中几种继承方式比较分析
  • JavaScript中的继承方式详解
  • js的2种继承方式详解
  • javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
  • JavaScript的六种继承方式(推荐)

      var ret=new parent();

      ret.y=20;

      return ret;

}

var childObj=new child();

alert(childObj.x);

第三种 类继承 属性抄写

语言支持:for in枚举对象所有属性

代码示例:

function parent(){

        this.x=10;

}

function child(){

      var parentObj=new parent();

      for(var p in parentObj){

              this[p]=parentObj[p];

      }

}

var childObj=new child();

alert(childObj.x);

第四种 类继承 对象冒充

语言支持:

1.动态添加和删除方法

2.函数的call和apply

代码示例:

function parent(){

        this.x=10;

}

function child(){

        this.parent=parent;

        this.parent();

        delete this.parent;

}

var childObj=new child();

alert(childObj.x);

function parent(){

        this.x=10;

}

function child(){

          parent.call(this);

}

var childObj=new child();

alert(childObj.x);

第五种 原型抄写

语言支持:通过修改类的原型对象 可以为一类对象添加属性和方法

代码示例:

function parent(){}

parent.prototype.me=function(){

        alert("parent")

};

function child(){}

for(var p in parent.prototype){

                child.prototype[p]=parent.prototype[p];

}

var childObj=new child();

childObj.me();

第六种 元类

语言支持: js函数都是对象 且js函数可被构造

代码示例:

function parent(string){

        var child=new                                          Function("this.x=10;"+string);   

        return child;

}

var child=new parent("this.y=20;");

var childObj=new child();

alert(childObj.y);

本文由华夏彩票发布于关于计算机,转载请注明出处:JS继承的几种方式,JavaScript继承方式实例

您可能还会对下面的文章感兴趣: