源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

js模拟类继承小例子

  • 时间:2021-02-04 05:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:js模拟类继承小例子
[u]复制代码[/u] 代码如下:
//使用原型继承,中间使用临时对象作为Child的原型属性,临时对象的原型属性再指向父类的原型, //防止所有子类和父类原型属性都指向通一个对象. //这样当修改子类的原型属性,就不会影响其他子类和父类 function extend(Child, Parent) { var F = function(){}; F.prototype = Parent.prototype; Child.prototype = new F(); Child.prototype.constructor = Child; Child.base = Parent.prototype; } function Parent(name) { this.aa = 123; this.getName = function() {return name;}; //使用闭包模拟私有成员 this.setName = function(value){name=value;}; } Parent.prototype.print = function(){alert("print!");}; Parent.prototype.hello = function() { alert(this.getName() + "Parent") }; function Child(name,age) { Parent.apply(this, arguments);//调用父类构造函数来继承父类定义的属性 this.age = age; } extend(Child,Parent); //继承Parent Child.prototype.hello = function() //重写父类hello方法 { alert(this.getName() + "Child"); Parent.prototype.hello.apply(this,arguments); //调用父类同名方法 }; //子类方法 Child.prototype.doSomething = function(){ alert(this.age + "Child doSomething"); }; var p1 = new Child("xhan",22); var p2 = new Child("xxx",33); p1.hello(); p2.hello(); p1.doSomething(); //子类方法 p1.print(); //父类方法 alert(p1 instanceof Child); //true alert(p1 instanceof Parent);//true
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部