function Student(name,age,sex,phone){
//继承方法
Person.call(this,name,age)
//添加自己的属性
this.sex=sex
this.phone=phone
//添加自己的方法
this.say()
}
//继承父类的属性
for(var i in Person.prototype){
Student.prototype[i]=Person.prototype[i]
}
//重写父类方法
Student.prototype.say()
{
alert(this.phone+' 'this.sex)
}
<html><body>
<script>
var funA = function(){
var version = '1.0'
this.getVersion = function(){
return version
}
}
var funB = function(){
funA.call(this)
}
b = new funB()
alert(b.getVersion())
</script>
</body>
</html>
子类重写方法是在基类有此方法重写,那么声名一个子类的对象,调用的方法是子类的方法,通过base转而调用父类中的方法,最终目的还是调用父类中的方法。
还有重写方法可以改变基类方法的作用,可以实现其他的效果,重写方法,和基类同名方法是两个不同实现的方法,
最主要你要分清楚 重写跟基类中的方法不一定实现同样的效果,还有基类也不一定知道派生类中是否重写了这个方法