源码
ts
// //新建一个父类// class People{// name:string;// age:number;// print(){// return this.name + ":" + this.age;// }// }// //新建一个扩展自 People 的子类// class Teacher extends People{// school:string;// print(){// return this.name + ":" this.age + ":" + this.school;// }// }//可以看到在上面的代码中并没有看到访问修饰符//什么是访问修饰符:public (公开的) private (私有的)//事实上如果什么都不写的情况下它默认的是 public 也就意味着他是公共的大家都可以用,下面用代码演示//新建一个父类class People{//public 是默认的加与不加效果是一样的public name:string;//下面测试私有的属性//这样写了之后编译时控制台会报错 下面的错误//Functions.ts(42,15): error TS2341: Property 'name' is private and only accessibl// e within class 'People'.// Functions.ts(51,3): error TS2341: Property 'name' is private and only accessible// within class 'People'.//所以连编译都是通过不了的,这个就是公有与私有的区别,公有的可以访问到而私有的是无法进行访问的// private name:string;//这里新增一个构造方法//这里如果将参数增加 private 例如 private name:string 下面也是会出现访问不到的问题的constructor(name:string,age:number){this.name = name;this.age = age;}age:number;print(){return this.name + ":" + this.age;}}//新建一个扩展自 People 的子类class Teacher extends People{school:string;//这里也新增一个构造方法constructor(school:string){super('xiaochuan',22);this.school = school;}print(){return this.name + ":" + this.age + ":" + this.school;}}// //使用 Teacher 这个子类// var t = new Teacher();// // alert(t.print());//这个时候因为未定义具体的值所以输出的是 undefined:undefined:undefined// //定义相应的属性值 再输出// t.name = 'xiaochuan';// t.age = 22;// t.school = '北京大学';// alert(t.print());//'xiaochuan:22:北京大学'//由于在创建类的时候新增了构造方法,所以上面的使用类以及输出也需要做出想应的改变var t = new Teacher('北京大学');alert(t.print());//'xiaochuan:22:北京大学'
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>TypeScript 函数-访问修饰符 public (公开的) private (私有的)</title></head><body><script type="text/javascript" src="Functions.js"></script></body></html>
浏览器输出效果,下面是使用
public时的效果,在使用private时编译都是无法通过的
