js继承实现方法详解

前端之家收集整理的这篇文章主要介绍了js继承实现方法详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了js继承实现方法分享给大家供大家参考,具体如下:

函数 this.name=name; this.sayhello=function(){ alert("hi我是"+this.name); }; } animal.prototype.shout=function(){ //prototype主要作用:给类增加一个新的属性函数 alert(this.name+"正在叫!"); }; animal.prototype.game=function(){ alert(this.name+"正在玩耍!"); }; var dog=new animal("小黑"); //实例化 dog.sayhello(); dog.shout(); dog.game();

一、原型继承

父类的函数 alert(this.name+"汪汪叫!"); } } Dog.prototype=Cat.prototype=new animal(); var dog=new Dog("小黑"); dog.sayhello(); dog.shout(); dog.game(); var cat=new Cat("小白"); cat.sayhello(); cat.shout(); cat.game();

animal是父类(或超类),要继承于谁,谁就是父类(超类)

改进:专门写个函数,用来实现继承

函数的属性添加上去 this.prototype=new superclass(); }; animal.prototype.shout=function(){ alert(this.name+"正在叫!"); }; animal.prototype.game=function(){ alert(this.name+"正在玩耍!"); }; var Dog=function(name){ this.name=name; this.shout=function(){ alert(this.name+"汪汪叫!"); } } Dog.extends(animal); var dog=new Dog("小黑"); dog.sayhello(); dog.shout(); dog.game(); var dog=new Dog("小白"); dog.sayhello(); dog.shout(); dog.game();

二、call,apply继承(不完全继承)

输出:hi我是小黑

通过call(apply)的方式,只能改变其this指向,通过prototype添加进去的方法,他是无法直接继承的

总结:

添加属性函数的类,因为call和apply函数只是实现了方法的替换,而没有对对象的属性函数进行复制操作

属性和函数

属性,只有删除原有属性,才会输出继承的属性

更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《

希望本文所述对大家JavaScript程序设计有所帮助。

原文链接:https://www.f2er.com/js/43459.html

猜你在找的JavaScript相关文章