原型主要是用来存公共属性和方法
function Animal(){
}
var a=new Animal()
a._prop_=Animal.prototype
a.constructor=Animal
原型继承
function Animal(category){
this.category = 'Animal';
this.testrr=['松鼠','小狗'];
this.sleep = function(){
console.log('我是sleep');
}
}
Animal.prototype.run= function(){
console.log('hhhh');
}
function Dog(name){
this.name=name;
this.type='dog';
}
Dog.prototype = new Animal();
Dog.prototype.speak = function(){
console.log('speak');
}
var p1= new Dog('小白');
console.log(p1)
p1.category = '蔬菜'
p1.testrr.push('小狗');
p1.sleep = function(){
console.log('我是sleep');
}
console.log(p1)
构造继承
function Animal(category){
this.category = category;
this.testrr=['老虎','猫'];
this.sleep = function(){
console.log('pp');
}
}
Animal.prototype.run= function(){
console.log('tttt');
}
function DogA(category,name){
Animal.call(this,category);
this.name=name;
this.type='dog';
}
var dog1= new DogA('动物','小白');
组合继承
function Animal(category){
this.category = category;
this.testrr=['老虎','猫'];
this.sleep = function(){
console.log('pp');
}
}
Animal.prototype.run= function(){
console.log('tttt');
}
function DogA(category,name){
Animal.call(this,category);
this.name=name;
this.type='dog';
}
DogA.prototype = Object.create(Animal.prototype);
DogA.prototype.constructor = DogA;
var dog1= new DogA('动物','小白');
Animal.prototype.km = "poo";
Animal.prototype.walk = function(){
console.log('ppp');
}