js模拟类继承小例子
js模拟类继承小例子
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下://使用原型继承,中间使用临时对象作为Child的原型属性,临时对象的原型属性再指向父类的原型,//防止所有子类和父类原型...

复制代码 代码如下:

//使用原型继承,中间使用临时对象作为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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类