7.属性的封装.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. (function () {
  2. /***
  3. * 只读 readonly
  4. * 类 static
  5. * 私有的 private:
  6. * 只能在当前类中访问和修改
  7. * 若是想要修改 则需要在类里进行定义方法
  8. * 共有的 public
  9. * 受保护的 protected
  10. * 只能在当前类及当前类的子类中访问及使用
  11. */
  12. class Person {
  13. private name: string;
  14. protected age: number;
  15. constructor(name: string, age: number) {
  16. this.name = name;
  17. this.age = age;
  18. }
  19. /***
  20. * 在属性的封装中
  21. * 修改数据 通过setter => set
  22. * 获取数据 通过getter => get
  23. */
  24. // name = '啧啧啧'
  25. // getName() {
  26. // return this.name;
  27. // }
  28. // setName(a) {
  29. // this.name = a;
  30. // }
  31. get name1() {
  32. return this.name;
  33. }
  34. set name1(b) {
  35. this.name = b;
  36. }
  37. }
  38. let p1 = new Person('哪吒',7);
  39. // p1.name = '猪八戒';
  40. console.log(p1.name1)
  41. p1.name1 = '唐僧';
  42. console.log(p1.name1)
  43. // console.log(p1.name);
  44. // console.log(p1.setName("猪八戒"))
  45. // console.log(p1.getName())
  46. })();