Я предполагаю, что вы хотите иметь возможность запускать функцию (в любое время и, возможно, много раз) на всех экземплярах класса, которые существуют в любой данный момент. Вы можете сделать это, имитируя список экземпляров класса "private stati c". Каждый экземпляр добавляется в список при вызове класса constructor
, и вы можете предоставить функцию, которая будет перебирать этот список:
let MyClass;
{
// this is only visible to functions inside the block
let myClassInstances = [];
MyClass = class {
constructor() {
myClassInstances.push(this);
}
importantMethod() {
console.log(this);
}
}
MyClass.runImportantMethodOnAll = function() {
myClassInstances.forEach(inst=>inst.importantMethod());
}
};
Вы можете использовать это как:
let x = new MyClass();
let y = new MyClass();
MyClass.runImportantMethodOnAll();
Нет необходимости прикреплять runImportantMethodOnAll
к MyClass
. Вы можете хранить его где угодно.