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();javascript继承总结
最新推荐文章于 2025-09-18 20:48:32 发布
本文详细介绍了JavaScript中使用面向对象编程的方法,包括类、原型链和构造函数的运用,以及如何创建和实例化对象。
643

被折叠的 条评论
为什么被折叠?



