您的位置:首页 > Web前端 > JavaScript

javascript继承总结

2012-03-10 20:23 204 查看
function Person (name,age) {
this.name = name;
this.age = age;
}

Person.prototype.sayName = function() {
alert('我的名字是'+this.name);
};

function Student(name,age,school) {
Person.call(this,name,age);
this.school = school;
}

function Fn() {}
Fn.prototype = Person.prototype;
Student.prototype = new Fn();
Student.prototype.constructor = Student;
//通过Fn构造函数,避免了子类Student继承超类Person时,调用超类Person的
//构造函数,进而避免了在子类Student的原型对象即Student.prototype上创建不必要的属性

Student.prototype.saySchool = function() {
alert('我的学校是' + this.school);
};

Student.prototype.sayName = function () {//覆盖了超类中的sayName函数
alert('我的学生名字是' + this.name);
};

var per = new Person('刘志刚', '18岁');

var stu = new Student('郑晓光','19岁','埃及大学');

per.sayName();
stu.sayName();
delete Student.prototype.sayName;//删除子类的sayName函数后即可重新访问超类中的sayName函数
stu.sayName();
stu.saySchool();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: