继承模式
Father.prototype.lastName = "deng";
function Father() {
}
function Son() {
}
function inherit(Target, Origin) {
Target.prototype = Origin.prototype;
}
inherit(Son, Father);
Son.prototype.sex = "male";// father也会有male,son就没有自己的个人空间了
var son = newSon();
优化
function inherit(Target, Origin) {
function F() {}
F.prototype = Target.prototype;
Target.prototype = new F();
}
Father.prototype.lastName = "deng";
function Father() {
}
function Son() {
}
inherit(Son, Father);
var son = new Son();
var father = new Father();
圣杯模式
//圣杯模式
function inherit(Target, Origin) {
function F() {}
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constuctor = Target;
Target.prototype.uber = Origin.prototype;
}
Father.prototype.lastName = "deng";
function Father() {
}
function Son() {
}
inherit(Son, Father);
var son = new Son();
var father = new Father();
封装
var inherit = (function () {
var F = function () {};
return function (Target, Origin) {
F.prototype = Origin.prototype;
Target.prototype = new F();
Target.prototype.constuctor = Target;
Target.prototype.uber = Origin.prototype;
}
}());
function Deng(name, wife) {
var prepareWife = "xiaozhang";
this.name = name;
this.wife = wife;
this.divorce = function () {
this.wife = prepareWife;
}
this.changePrepareWife = function (target) {
prepareWife = target;
}
this.sayPraprewife = function () {
console.log(prepareWife);
}
}
var deng = new Deng('deng', 'xiaoliu');
// deng.prepareWife // undefined
// deng.divorce() deng.wife // xiaozhang