1.es5的继承(组合式继承)
function Animal(name,color){
this.name = name;
this.color = color;
}
Animal.prototype.eat = function(){
console.log(this.name + ' is eating');
}
Animal.prototype.sleep = function(){
console.log(this.name + ' is sleeping');
}
//继承
function Rabbit(name,color,age){
//调用父类构造
Animal.call(this,arguments);
this.age = age;
}
Rabbit.prototype = new Animal();
Rabbit.prototype.constructor = Rabbit;
let rabbit = new Rabbit('大白','white',10);
rabbit.eat();
rabbit.sleep();
console.log(rabbit);
2.es6的继承
class Animal{
name;
color;
constructor(name:any,color:any){
this.name = name;
this.color = color;
}
eat(){
console.log(this.name + ' is eating');
}
sleep(){
console.log(this.name + ' is slepping');
}
}
export class Rabbit extends Animal{
age;
constructor(name:any,color:any,age:any){
//子类中通过super调用父类的构造函数,一定要放在第一行
super(name,color);
this.age = age;
}
eat(){
console.log('我是自己的eat');//这里自已如果有就覆盖父亲的
}
test(){
super.eat();
}
}
let rab = new Rabbit('大白', 'white', 10);
rab.eat();
rab.sleep();
rab.test();
console.log(49,rab);
function test(){
var aa = 0;
var testSet = setInterval(function(){
aa++;
console.log(123);
if(aa<10){
clearInterval(testSet);
}
},20);
var testSet1 = setTimeout(function(){
console.log(321)
},1000);
for(var i=0;i<10;i++){
console.log('test');
}
}
test()
欢迎补充,一起进步。