1、es 5 中类的定义
function Person(){ //es5中简单的类 this.name = '张三'; //属性 this.age = 20; this.run = function(){ //实例方法:通过 new 的实例来调用 alert(`${this.name}快点跑啊!`); } } Person.prototype.work = function(){ //原型方法:实例会共享这个方法 alert(`${this.name}加班工作!`); } Person.eat = function(){ alert('静态方法'); } //静态方法 let person = new Person(); //类的实例化 alert(person.name); person.run(); person.work(); Person.eat();
2、TypeScript 中类的定义
class Person{ name:string; //属性 前面省略了 public 关键字 constructor(name:string){ //构造函数 实例化的时候触发的方法 this.name = name; } getName(){ return this.name; } setName(name){ this.name = name; } } let person = new Person('孙悟空'); //类的实例化 person.getName();
3、es 5 中类的继承
function Animal(){} function Dog(){ Animal.call(this); //将 Animal 中的 this 指向 Dog 的实例 } function temp(){} temp.prototype = Animal.prototype; Dog.prototype = new temp(); Dog.prototype.constructor = Dog;
4、TypeScript 中类的继承
class Person{ name:string; //属性 前面省略了 public 关键字 constructor(name:string){ //构造函数 实例化的时候触发的方法 this.name = name; } getName(){ return this.name; } setName(name){ this.name = name; } } class Child extends Person{ //子类继承父类,子类的实例可以调用符类中的方法 constructor(name:string){ super(name); } }
5、类里面的修饰符
typescript 里面定义属性的时候给我们提供了三种修饰符:public、protected、private。
public:公有:在类里面、子类、类外面都可以访问。属性如果不加修饰符默认就是公有(public)
protected:保护类型:在类里面、子类里面可以访问,在类外部没法访问
private:私有:在类里面可以访问,子类、类外部都没法访问