1. 静态方法 static
static 定义的函数不允许其实例访问
// 静态方法 static 的定义
class Point {
x: number;
y: number
constructor (x:number, y:number) {
this.x = x
this.y = y
}
getPosition () {
return `(${this.x},${this.y})`
}
static getName () {
return Point
}
}
let p = new Point(2, 3)
console.log(p) // Point { x: 2, y: 3 }
console.log(p.getPosition()) // (2,3)
console.log(Point.getName())
console.log(p.getName())
2. ES5 中的继承
function Parent () {
this.name = 'zfb'
}
Parent.prototype.sayName = function () {
return this.name
}
function Child (sex) {
this.sex = sex
}
Child.prototype = new Parent()
let childPerson = new Child('女')
console.log(childPerson) // Child {sex: "女"}
console.log(childPerson.sayName()) // zfb
在 es6 中 class 继承需要用到 super() 函数