|
@@ -0,0 +1,73 @@
|
|
|
+// 属性 封装:令属性更安全
|
|
|
+(function(){
|
|
|
+ /**
|
|
|
+ * readonly 只读
|
|
|
+ * public 公共的
|
|
|
+ * private 私有的 只能在当前类中进行使用(访问及修改)
|
|
|
+ * protected 受保护的 当前字段在当前类及当前子类中只能访问
|
|
|
+ */
|
|
|
+ // class Person {
|
|
|
+ // public name:string;
|
|
|
+ // private age:number;
|
|
|
+ // constructor(name:string,age:number) {
|
|
|
+ // this.name = name;
|
|
|
+ // this.age = age;
|
|
|
+ // }
|
|
|
+ // /***
|
|
|
+ // * 属性封装
|
|
|
+ // * getter 获取属性值 get
|
|
|
+ // * setter 设置属性值 set
|
|
|
+ // */
|
|
|
+ // get name1() {
|
|
|
+ // return this.age+'1';
|
|
|
+ // }
|
|
|
+ // set name1(value:string) {
|
|
|
+ // this.name = value
|
|
|
+ // }
|
|
|
+ // // getName() {
|
|
|
+ // // return this.name;
|
|
|
+ // // }
|
|
|
+ // // setName(value:string) {
|
|
|
+ // // return this.name = value;
|
|
|
+ // // }
|
|
|
+ // }
|
|
|
+ // let p = new Person("孙悟空",10)
|
|
|
+ // // p.setName("猪八戒")
|
|
|
+ // // console.log(p.getName(),'实例化对象')
|
|
|
+ // console.log(Person,'类')
|
|
|
+ // // p.age = 12;
|
|
|
+ // p.name1 = '唐僧'
|
|
|
+ // console.log(p.name1)
|
|
|
+
|
|
|
+ // class A {
|
|
|
+ // public name:string;
|
|
|
+ // public age:number;
|
|
|
+ // constructor(name:string,age:number) {
|
|
|
+ // this.name = name;
|
|
|
+ // this.age = age;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // class B {
|
|
|
+ // constructor( public name:string,public age:number) {
|
|
|
+ // this.name = name;
|
|
|
+ // this.age = age;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ class C {
|
|
|
+ protected num:number;
|
|
|
+ constructor(num:number) {
|
|
|
+ this.num = num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ class D extends C {
|
|
|
+ sayHello() {
|
|
|
+ console.log("你好")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let c = new C(12);
|
|
|
+ console.log(c,'c')
|
|
|
+ // c.num = 99;
|
|
|
+ let d = new D(23);
|
|
|
+ console.log(d)
|
|
|
+ // d.num = 88;
|
|
|
+})()
|