js利用Class实现面向对象思想

// 静态方法

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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值