name和age为属性,sayHello 为方法
1.使用new来生成一个类
person里面放的是这个对象的引用!
2.继承
用关键字extends来继承,继承所有可被继承的属性和方法。
如果有继承就一定会有super,代表父类构造函数,相当于把父类构造的属性给他!在构造的时候,我们先super()这里就先将父类new出来,所以父类先于子类创建出来!!
问题:将super和子类实例对象交换位置?
会报错!!
这是正常顺序:
这是错误顺序:
注意点:
这里的super用于调用父类的实例
总结:
1.super当做对象来用就是调用父类实例
2.super用作函数就是构造函数
3.原型链
全局只有一个object,构造我们的子类,必须找到原型链的最顶层,然后往下构造
4.访问器属性:get与set函数
可以使用 get()和 set() 来访问和设置对象的属性。get一般用于读取,set一般用于写
我们使用get和set将原始数据包装,来进行相应的逻辑!!!!!!!这虽然是函数,一个方法,但是使用的时候和属性的使用方法是一样的!!!!
例子:
这里person.age=10,实际上是把10这个数字作为变量给set age这个函数,然后赋值给_age!!!
5.但是我们作为开发者,不能保证别人不使用原始的_name来访问,那么我们可以引入私有属性
方法1:我们将访问器属性作为闭包,将get和set放在构造函数中
方法2:私有变量
加上#必须作为成员申明!
6.静态成员
使用 static 关键字来定义类的静态方法和属性,它们属于类本身而不是类的实例
静态成员属性和方法,不能通过this来调用,只能通过类来访问
并且在构造的时候也要使用person来构造