Skip to content

ES6细节备忘录

1. 怎么实现类的私有方法?

1. 在类方法名前面加上下划线 _

js
class MyClass {
  func1(value) {
    this._privateFunc(value)
  }

  _privateFunc() { // 注意看这里,用了下划线
    this.value = value
    console.log('this is a private function', value)
  }
}

2. 通过在类外部定义方法,然后在类内部调用

js
class MyClass {
  func1(value) {
    privateFunc.call(this, value)
  }
}

function privateFunc(value) {
  this.value = value
  console.log('this is a private function', value)
}

3. 用Symbol类型为私有方法命名

js
const privateFunc = Symbol('privateFunc');

class MyClass{
  func1(value) {
    this[privateFunc](value)
  }

  [privateFunc](value) {
    this.value = value
    console.log('this is a private function', value)
  }
}