function Person(name,sex) { this.name=name; this.sex=sex; } Person.prototype.showName=function() { alert(this.name) } Person.prototype.showSex=function() { alert(this.sex); } function worker(name,sex,job) { Person.call(this,name,sex);调用父级的构造函数为了继承属性,call改变this的指向现在的this是new出来的worker 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 p1= new worker('hu','man','code'); p1.showJob();
worker.prototype=Person.prototype;这一句话一定要放在延伸子类方法的前面防止报错