es5的方法
最简单的类
function Person() {
this.name = 'zy'
this.age = 27
this.run = function () {
console.log( `${this.name} is run`)// zy is run
}
}
let person = new Person()
person.sex = 'female'
console.log('person.name', person.name) // zy
console.log('person.sex', person.sex) // female
原型链里面增加属性和方法
Person.prototype.grade = '一年级'
Person.prototype.work = function () {
console.log( `${this.name} is work`)// zy is work
}
console.log('person.grade', person.grade) // 一年级
person.work()
添加静态方法
Person.getInfo = function () {
console.log('person.getInfo') // person.getInfo
}
Person.getInfo()
继承
1. 对象冒充继承方式,只能继承【构造函数】里的属性和方法
function Web () {
Person.call(this) //
}
let web = new Web()
console.log('Web.name', web.name) //zy
console.log('Web.grade', web.grade) // undefined2. 原型链继承方式,能继承【构造函数】和【原型链】上的属性和方法
不能传参调用
function Web () {
}
Web.prototype =new Person()
let web = new Web()
console.log('Web.name', web.name) // zy
console.log('Web.grade', web.grade) // 一年级
3. 对象冒充 + 原型链继承方式
function Person(name, age) {
this.name = name
this.age = age
this.run = function () {
console.log( `${this.name} is run`)// zy is run
}
}
function Web(name, age) {
Person.call(this, name, age) // 继承构造函数的属性和方法
}
Web.prototype = Person.prototype // 继承原型链的属性和方法
let web = new Web('zy', 27)
web.run()
es6的方法
最基础的类
class Person {
name: string;
// 属性,前面省略了public关键字
constructor (n:string) { // 构造函数,实例化类的时候触发的函数
this.name = n
}
run ():void {
console.log(`${this.name} is run`) // zy is run
}
}
let person = new Person('zy')
person.run()
继承
class Person {
name: string;
// 属性,前面省略了public关键字
constructor (name:string) { // 构造函数,实例化类的时候触发的函数
this.name = name
}
run ():void {
console.log(`${this.name} is run`) // ying is run
}
} class Web extendsPerson{
constructor (name:string) {
super(name) // 初始化父类的构造函数
}
}
let web = new Web('ying')
web.run()
类里面的修饰符 【TypeScript基础学习(4): 类】public 公有 在类里面、子类、类外面都可以访问
protected 保护类型 在类里面、子类里面可以访问,在类外部没法访问
privated 私有 在类里面可以访问 子类、类外面不可以访问
推荐阅读
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- 如何不使用tsc编译来执行TypeScript代码
- TypeScript基础学习(3): 函数
- TypeScript基本使用
- web|TypeScript 新版网站上线(带来了新的导航机制)
- web|TypeScript 4.0正式发布!现在是开始使用它的最佳时机
- typescript|ES新特性与TypeScript、JS性能优化
- TS实战碰到的问题及解决办法(连载中)