es6添加删除class_浅谈 ES6 中的 Class

父类和子类之间方法和属性的相互访问

父类静态方法访问父类静态方法用this.staticfunctionMethod 来获取

父类非静态方法访问父类静态方法用this.constructor.staticfunctionMethod 来获取

父类非静态方法访问父类非静态方法用this.functionMethod 来获取

子类静态方法访问父类静态方法用super.staticfunctionMethod 来获取

子类非静态方法访问父类静态方法用super.constructor.staticfunctionMethod 来获取

子类非静态方法访问父类非静态方法用super.functionMethod 来获取

子类访问父类属性需要使用 super.constructor.Property

class Father{

constructor(x, y){

this.x = x;

this.y = y;

this.name = 'Father'

}

sayName(){

console.log(this.name)

}

static ping(){

return 'ping';

}

static bing(){

// 静态方法中直接使用 this.staticMethod 来访问父类的静态方法

console.log(`bing,${this.ping()}`);

}

unStatic(){

// 非静态方法中使用 this.constructor.staticMethod 来访问静态方法

console.log(this.constructor.ping());

}

}

Father.bing(); // bing,ping

new Father().unStatic();// ping

class Child extends Father{

constructor(x, y){

super(x, y);

this.name = 'Child';

}

test(){

// 子类不能直接访问父类属性,子类访问父类属性需要使用 `super.constructor.Property

console.log(super.name,super.constructor.name);

}

sayName(){

// 在子类的非静态方法中访问父类静态方法用super.constructor.staticfunctionMethod

console.log(super.constructor.ping());

// 在子类的非静态方法中访问父类非静态方法用super.functionMethod

super.sayName();

}

static bing(){

// 在子类的静态方法中访问父类静态方法用super.staticfunctionMethod

console.log(`bing,${super.ping()}`);

}

}

new Child().test(); // undefined,"Father"

new Child().sayName(); // ping, Child

Child.bing(); // bing,ping

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值