//继承(寄生组合模式)
function Pig(name, age) {
this.name = name;
this.age = age;
//这样写固然可以,但是每次调用的时候都会在内存中创建一个sayhi方法
//this.sayHi = function () {
// alert("Name=" + this.name + ",Age=" + this.age);
//}
}
Pig.prototype.sayHi = function () {
alert("Name=" + this.name + ",Age=" + this.age);
}
function smallPig(name, age) {
//将pig方法中this改成smallpig中的this
Pig.call(this, name, age);
}
//将Pig上的原型继承过来,new一个Pig
//将来smallpig.prototype上添加新的属性或方法才不会影响pig的原型
smallPig.prototype = new Pig();
//如果直接把Pig的原型给smallpig,那么用smallpig构造原型的时候,Pig也将会被构造原型
// smallPig.prototype =Pig.prototype;
smallPig.prototype.sayHi123 = function () { };
var p12 = new smallPig("猪猪", 1);
p12.sayHi();
js模拟继承
最新推荐文章于 2021-08-08 17:34:28 发布