ES6 允许新建“类”(class)
class SkinnedMesh extends THREE.Mesh {
  constructor(geometry, materials) {
    super(geometry, materials);
    this.idMatrix = SkinnedMesh.defaultMatrix();
    this.bones = [];
    this.boneMatrices = [];
    //...
  }
  update(camera) {
    //...
    super.update();
  }
  get boneCount() {
    return this.bones.length;
  }
  set matrixType(matrixType) {
    this.idMatrix = SkinnedMesh[matrixType]();
  }
  static defaultMatrix() {
    return new THREE.Matrix4();
  }
}
上面是一个类的定义。
extends关键字表示继承某个父类。super指代父类。get是取值器,读取该方法定义的属性时,会自动执行指定的代码。set是赋值器,赋值该方法定义的属性时,会自动执行指定的代码。static关键字,表示该方法是静态方法,定义在类上面,而不是定义在实例对象上面,以上面为例,就是SkinnedMesh.defaultMatrix()这样调用。定义了类以后,就可以新建实例了。
const instance = new SkinnedMesh();
原文:https://www.cnblogs.com/piaobodewu/p/9742009.html