源码

  • ts

    1. // //新建一个父类
    2. // class People{
    3. // name:string;
    4. // age:number;
    5. // print(){
    6. // return this.name + ":" + this.age;
    7. // }
    8. // }
    9. // //新建一个扩展自 People 的子类
    10. // class Teacher extends People{
    11. // school:string;
    12. // print(){
    13. // return this.name + ":" this.age + ":" + this.school;
    14. // }
    15. // }
    16. //可以看到在上面的代码中并没有看到访问修饰符
    17. //什么是访问修饰符:public (公开的) private (私有的)
    18. //事实上如果什么都不写的情况下它默认的是 public 也就意味着他是公共的大家都可以用,下面用代码演示
    19. //新建一个父类
    20. class People{
    21. //public 是默认的加与不加效果是一样的
    22. public name:string;
    23. //下面测试私有的属性
    24. //这样写了之后编译时控制台会报错 下面的错误
    25. //Functions.ts(42,15): error TS2341: Property 'name' is private and only accessibl
    26. // e within class 'People'.
    27. // Functions.ts(51,3): error TS2341: Property 'name' is private and only accessible
    28. // within class 'People'.
    29. //所以连编译都是通过不了的,这个就是公有与私有的区别,公有的可以访问到而私有的是无法进行访问的
    30. // private name:string;
    31. //这里新增一个构造方法
    32. //这里如果将参数增加 private 例如 private name:string 下面也是会出现访问不到的问题的
    33. constructor(name:string,age:number){
    34. this.name = name;
    35. this.age = age;
    36. }
    37. age:number;
    38. print(){
    39. return this.name + ":" + this.age;
    40. }
    41. }
    42. //新建一个扩展自 People 的子类
    43. class Teacher extends People{
    44. school:string;
    45. //这里也新增一个构造方法
    46. constructor(school:string){
    47. super('xiaochuan',22);
    48. this.school = school;
    49. }
    50. print(){
    51. return this.name + ":" + this.age + ":" + this.school;
    52. }
    53. }
    54. // //使用 Teacher 这个子类
    55. // var t = new Teacher();
    56. // // alert(t.print());//这个时候因为未定义具体的值所以输出的是 undefined:undefined:undefined
    57. // //定义相应的属性值 再输出
    58. // t.name = 'xiaochuan';
    59. // t.age = 22;
    60. // t.school = '北京大学';
    61. // alert(t.print());//'xiaochuan:22:北京大学'
    62. //由于在创建类的时候新增了构造方法,所以上面的使用类以及输出也需要做出想应的改变
    63. var t = new Teacher('北京大学');
    64. alert(t.print());//'xiaochuan:22:北京大学'
  • HTML

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>TypeScript 函数-访问修饰符 public (公开的) private (私有的)</title>
    6. </head>
    7. <body>
    8. <script type="text/javascript" src="Functions.js"></script>
    9. </body>
    10. </html>
  • 浏览器输出效果,下面是使用 public 时的效果,在使用 private 时编译都是无法通过的

    TypeScript-函数-访问修饰符-public-(公开的)--private-(私有的) - 图1