如何实现A继承B,并且再给A添加新的属性时不影响B
最完美的继承方法——圣杯模式
<script>
function inherit(Target, Origin) {
//用F做中间层
function F() {
};
F.prototype = Origin.prototype
//new一个F,这样给son的prototype加东西不会影响到father
Target.prototype = new F()
Target.prototype.constructor=Target
//查看到底继承自谁
Target.prototype.uber=Origin.prototype
}
Father.prototype.lastname = 'abc'
function Father() {
}
function Son() {
}
// 先继承,再new对象
inherit(Son,Father)
var son=new Son()
var father=new Father()
</script>
<script>
/*
function inherit(Target, Origin) {
//用F做中间层
function F() {};
F.prototype = Origin.prototype
//new一个F,这样给son的prototype加东西不会影响到father
Target.prototype = new F()
Target.prototype.constructor=Target
//查看到底继承自谁
Target.prototype.uber=Origin.prototype
}*/
//另一种写法(推荐这种)
var inherit=(function(){
var F=function(){
};
return function(Target,Origin){
F.prototype=Origin.prototype;
Target.prototype=new F()
Target.prototype.constructor=Target;
Target.prototype.uber=Origin.prototype
}
}())
Father.prototype.lastname = 'abc'
function Father() {
}
function Son() {
}
// 先继承,再new对象
inherit(Son,Father)
var son=new Son()
var father=new Father()
</script>