TypeScript学习(三)ts中的类
类
1.es5的类
1.1构造函数
只有属性
function Person(){
this.name="张三",
this.age=20
}
var p=new Person()
console.log(p.name)//张三
属性和方法
function Person(){
this.name="张三";
this.age=20;
this.run=function(){
console.log(this.name+"在跑步")//张三在跑步
}
}
var p=new Person()
p.run()
1.2在原型链上增加属性和方法
Person.prototype.sex='男'
Person.prototype.work=function(){
console.log(this.name+"在上班")
}
p.work()//张三在上班
注意:原型链上的属性会被多个实例共享,构造函数不会。
1.3静态方法
Person.eat=function(){
console.log("静态方法eat")
}
// 调用
Person.eat()//静态方法eat
注意:静态方法只能被类调用,实例不能调用。
1.4类的继承
1.对象冒充实现继承
function Web(){
Person.call(this)//对象冒充实现继承Person类
}
let w=new Web()
w.run()//张三在跑步
注意:对象冒充实现继承不可以继承原型链上的方法或者属性,静态方法也不能被继承
2.原型链实现继承
相当于将一个Person实例挂载到Web的原型链上,这样Web的实例就具有了与Person实例一样的属性和方法
function Web(){
}
Web.prototype=new Person()
let w = new Web()
w.run()//张三在跑步
w.work()//张三在上班
注意:静态方法还是无法继承
问题
实例化子类的时候无法给父类传参