// 静态方法
class A {
constructor (){
}
static bar(){
}
}
// 静态变量
class A {
constructor (){
}
static bar(){
}
}
// 私有变量
class A {
constructor (){
var private = 1
this.foo = function(){
return private;
}
}
getPrivate(){
this.private();
}
}
// 私有方法(与私有属性相同,使用特权方法访问)
class A {
constructor (){
const bar = () => {
console.log('this is private method');
};
super();
this.foo = function() {
bar();
};
}
}
// 抽象类(利用new.target)
const A = class Bar {
constructor() {
console.log(new.target);
if (new.target == Bar) {
throw Error('Class Bar should be new by its child class');
}
}
foo() {}
};
class B extends A {
constructor() {
super();
}
foo() {
console.log('I am B');
}
}
class C extends A {
constructor() {
super();
}
foo() {
console.log('I am C');
}
}
// var a = new A();
// a.foo();
var c = new C();
c.foo();