首页 > 编程 > JavaScript > 正文

JS继承用法实例分析

2019-11-20 13:12:55
字体:
来源:转载
供稿:网友

本文实例分析了JS继承的用法。分享给大家供大家参考。具体分析如下:

继承 : 子类不影响父类,子类可以继承父类的一些功能 ( 代码复用 )

属性的继承 : 调用父类的构造函数 call

方法的继承 : for in :  拷贝继承 (jquery也是采用拷贝继承extend)

1. 拷贝继承

function Person (name){ this.name = name;}Person.prototype.showName =function (){ alert(this.name);}function Worker(name,job){ Person.call(this,name); this.job = job;}extend(Worker.prototype, Person.prototype);//如果用Worker.prototype=Person.prototype的话,会造成引用相同的问题function extend(obj1,obj2){ for(var i in obj2){   obj1[i] = obj2[i] }}var coder = new Worker('magicfly','frontEnd');coder.showName();

2. 类继承

function Person (name){ this.name = name;}Person.prototype.showName =function (){ alert(this.name);}function Worker(name,job){ Person.call(this,name); this.job = job;}//Worker.prototype = new Person();// 这样继承会继承父级的不必要属性 function F(){};F.prototype = Person.prototype;Worker.prototype = new F();//通过建立一个临时构造函数来解决 ,也称为代理函数var coder = new Worker('MAGICFLY','START');coder.showName();

3. 原型继承

var a = {  name : '小明'};var b = cloneObj(a);b.name = '小强';//alert( b.name );alert( a.name );function cloneObj(obj){  var F = function(){};  F.prototype = obj;  return new F();}

适用情况

拷贝继承:  通用型的  有new或无new的时候都可以
类式继承:  new构造函数
原型继承:  无new的对象

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表