На самом деле, статические методы не добавляются в
prototype, потому что они принадлежат самому классу, а не его экземплярам. Но если ты хочешь имитировать статический метод в
prototype, можно использовать функцию-конструктор и добавить метод вручную. 🚩Как работают статические методы? (`static`)
В классе статические методы объявляются с помощью
static. Они не находятся в prototype, а принадлежат самому классу. class User {
static sayHello() {
return "Привет!";
}
}
console.log(User.sayHello()); // ✅ "Привет!"
console.log(User.prototype.sayHello); // ❌ undefined (нет в prototype)🚩Добавление "статического" метода в `prototype` (не совсем статический)
Если нужно, чтобы каждый объект имел доступ к "статическому" методу через
prototype, можно сделать такfunction User(name) {
this.name = name;
}
// Добавляем метод в prototype
User.prototype.sayHello = function () {
return "Привет!";
};
const user1 = new User("Иван");
console.log(user1.sayHello()); // ✅ "Привет!"🚩Добавление метода напрямую в сам класс (имитация `static`)
Если хочется добавить метод на сам класс, а не в
prototype, можно сделать такfunction User(name) {
this.name = name;
}
// Добавляем метод прямо в функцию-конструктор
User.sayHello = function () {
return "Привет!";
};
console.log(User.sayHello()); // ✅ "Привет!"Ставь 👍 и забирай 📚 Базу знаний