一、实例成员和静态成员
<script type="text/javascript">
类
class Star {
// 实例成员
uname = '阿飞';
age = 22;
// 静态成员
// 静态属性
static language = '汉语';
static sink = '黄皮肤';
// 静态方法
static sing () {
console.log('唱歌');
};
static tiao () {
console.log('跳舞');
}
}
实例化对象
let obj = new Star();
console.log(obj.language); // uhdefined
实例化对象不能访问静态成员
console.log( Star.uname ); // undefined
class类不能访问实例成员
console.log( Star.language ); // 汉语
Star.sing(); // 唱歌
</script>
静态成员需要前面加上 static 属性, static 属性 = 值;
二、constructor 构造函数、构造器、构造方法
创建类时在类的内部有一个特定的方法 constructor ,该方法会在类被实例化时自动被调用,
常被用于处理一些初始化的操作。
<script type="text/javascript">
class Person {
constructor (uname, age, sex) {
this.uname = uname;
this.age = age;
this.sex = sex;
this.head = 1;
this.legs = 2;
}
// 方法
eat () {
console.log('eat方法');
}
say () {
console.log('say方法');
}
}
let p = new Person('张飞', 22, '男');
console.log(p);
控制台打印:
Person {head: 1, legs: 2, eyes: 2, uname: '张三丰', age: 22}
age: 22
eyes: 2
head: 1
legs: 2
uname: "张三丰"
[[Prototype]]: Object
constructor: class Person
say: ƒ say()
[[Prototype]]: Object
let p2 = new Person('关羽', 23, '男');
console.log(p2)
控制台打印:
Person {head: 1, legs: 2, eyes: 2, uname: '李寻欢', age: 21}
age: 21
eyes: 2
head: 1
legs: 2
uname: "李寻欢"
[[Prototype]]: Object
constructor: class Person
say: ƒ say()
[[Prototype]]: Object
</script>