类的创建与继承
//创建类
class A {
constructor(name = 'mukewang') {
this.name = name;
this.id = 1;
}
}
let c_a = new A('a');
console.log(c_a); //{name: "a", id: 1}
// 继承类
class B extends A {
}
console.log(new B('b')); //{name: "b", id: 1}
// 继承类 传递参数
class C extends A {
constructor(name = 'child') {
super(name); //换用this.name = name; 会报错
this.type = 'child';
}
}
console.log(new C('c')); //{name: "c", id: 1, type: "child"}
静态方法 静态属性
class A {
static tell() {
console.log('tell');
}
}
A.tell(); //静态方法
A.type = 'test';
console.log(A.type); //静态属性
getter 与 setter
class A {
constructor(name = 'king') {
this.name = name;
}
age=123
get_age() {
return 'xx' + this.age
}
//这里是属性并不是函数
get get_name() {
return 'xx' + this.name
}
set get_name(value) {
this.name = value;
}
}
let v = new A();
console.log(v.age); //123
console.log(v.get_age());//xx123
v.age = 321;
console.log(v);//{age: 321, name: "king"}
console.log(v.get_name); //xxking
console.log(v); //{age: 321, name: "king"}
v.get_name = 'hello';
console.log(v); //{age: 321, name: "hello"}