学习typeScript第四天希望一起加油。笔记放出,希望对大家有所帮助
// ts 中的类
//es5中定义类的方法
// function person(name){
// this.name = name;
// this.run = function(){
// alert(this.name+'在运动')
// }
// }
// var p = new person('张三');
// p.run()
//ts中定义类的方法
// class Person{
// name:string; //属性 前面省略了pubilc关键字
// constructor(n:string){ //构造函数 实例话类的时候触发的方法
// this.name=n;
// }
// run():void{
// alert(this.name)
// }
// }
// var p = new Person('张三');
// p.run()
// class Person{
// name:string; //属性 前面省略了pubilc关键字
// constructor(n:string){ //构造函数 实例话类的时候触发的方法
// this.name=n;
// }
// run():void{
// alert(this.name)
// }
// getName():string{
// return this.name
// }
// setName(name:string):void{
// this.name = name
// }
// }
// var p = new Person('张三');
// alert(p.getName());
// p.setName('李四');
// alert(p.getName())
// 2.ts中实现继承 extends、 super
// class Person{
// name:string;
// constructor (name:string){
// this.name=name;
// }
// run():string{
// return `${this.name}在运动`
// }
// }
// // var p = new Person('王武');
// // alert(p.run())
// class Web extends Person{
// constructor(name:string){
// // super表示初始化父类的构造函数
// super(name)
// }
// }
// var w = new Web('李四');
// alert(w.run())
//ts中继承的探讨 父类的方法和子类的方法一致
// class Person{
// name:string;
// constructor (name:string){
// this.name=name;
// }
// run():string{
// return `${this.name}在运动`
// }
// }
// // var p = new Person('王武');
// // alert(p.run())
// // 子类不但可以继承父类的属性和方法还可以扩展自己的属性和方法
// class Web extends Person{
// constructor(name:string){
// // super表示初始化父类的构造函数
// super(name)
// }
// run():string{
// return `${this.name}在运动111111`
// }
// work(){
// alert(`${this.name}在工作`)
// }
// }
// var w = new Web('李四');
// // alert(w.run());
// alert(w.work());
// alert(w.run()); 子类的run方法 如果父和子有一样的方法 现在子招没有再去父找
// 3.类里面的修饰符 typeScript 定义属性的时候给我提供了3种修饰符
/*
public //公有 表示在类里面 子类 类外面都可以访问
protected //保护类型 在类名里面、子类可以访问 在类外部不可以访问
private //私有 在类可以访问 在子类和类外面都不可以访问
属性如果不佳修饰符 默认为公有
*/
// public //公有 表示在类里面 子类 类外面都可以访问
// class Person{
// // 公有属性
// public name:string;
// constructor (name:string){
// this.name=name;
// }
// run():string{
// return `${this.name}在运动`
// }
// }
// class Web extends Person{
// constructor(name:string){
// super(name)
// }
// run():string{
// return `${this.name}在运动111111`
// }
// work(){
// alert(`${this.name}在工作`)
// }
// }
// var w = new Web('李四');
// alert(w.work());
// // 类外部访问公有属性
// var p = new Person('王五');
// alert(p.name) //王五
// protected //保护类型 在类名里面、子类可以访问 在类外部不可以访问
// class Person{
// // 公有属性
// protected name:string;
// constructor (name:string){
// this.name=name;
// }
// run():string{
// return `${this.name}在运动`
// }
// }
// class Web extends Person{
// constructor(name:string){
// super(name)
// }
// run():string{
// return `${this.name}在运动111111`
// }
// work(){
// alert(`${this.name}在工作`)
// }
// }
// var w = new Web('李四');
// alert(w.work()); //可以在子类访问
// alert(w.run()) //在当前访问
// // 类外部访问公有属性
// var p = new Person('王五');
// alert(p.name) //访问不到
// private //私有 在类可以访问 在子类和类外面都不可以访问
class Person{
// 公有属性
private name:string;
constructor (name:string){
this.name=name;
}
run():string{
return `${this.name}在运动`
}
}
// class Web extends Person{
// constructor(name:string){
// super(name)
// }
// work(){
// console.log(`${this.name}在工作`) //子类也是访问不到
// }
// }
var p = new Person('哈哈哈');
// alert(p.name) //类的外部访问 不到
alert(p.run())