Какие проблемы с ES5 представляют собой методы статического класса в ES6, с которыми нужно иметь дело?Назначение статических методов в ECMAScript 6 Классы
Документация Babel имеет следующий пример в its section regarding ES6 classes, хотя на самом деле не указано, что делает этот шаблон.
Классы поддерживают наследование на базе прототипов, супер звонки, экземпляра и статические методы и конструкторы
class SkinnedMesh extends THREE.Mesh {
constructor(geometry, materials) {
super(geometry, materials);
this.idMatrix = SkinnedMesh.defaultMatrix();
this.bones = [];
this.boneMatrices = [];
//...
}
update(camera) {
//...
super.update();
}
static defaultMatrix() {
return new THREE.Matrix4();
}
}
Лично я использую ключевое слово 'static', чтобы указать разработчику, что * этот метод не использует информацию из текущего экземпляра *, подобно тому, как использовать имена с префиксом-символом underscore, чтобы указать частные свойства, - хотя это необязательно если это правильно, – CodingIntrigue
Очень хороший пример, спасибо! –
Могу ли я предложить переименовать 'defaultMatrix' в 'createDefaultMatrix', потому что это очень классический шаблон «Factory Method» (инкапсуляция «нового» оператора), и многие согласны с этим соглашением. –