面向对象继承问题:
- 属性继承:构造函数伪装
- 方法继承:原型链
我们先写一个简单的对象
function Person(name,age) {
this.name = name;
this.age = age;
}
Person.prototype.showName = function () {
console.log("名字:" + this.name);
};
Person.prototype.showAge = function () {
console.log("年龄:" + this.age);
};
实现属性的继承
function Worker(name,age,job) {
// this->new 出来的Worker
// 构造函数伪装:继承父级的构造函数
Person.call(this,name,age); // 继承属性
Worker.prototype.showJob = function () {
this.job = job;
};
}
实现方法的继承
// 原型链 通过原型来继承父级的方法
// Worker.prototype = Person.prototype; // 继承方法
for(var i in Person.prototype){
Worker.prototype[i] = Person.prototype[i];
}
Worker.prototype.showJob = function () {
alert(this.job);
};
实例化测试
var ost = new Worker("张正阳","30","工程师");
ost.showJob();
var ant = new Person("张纪中","40","导演");
ant.showJob();
网友评论