@decvdence

В чем разница обычного и static метода в данном сулчае?

Есть два файл, в одном содержится класс с методами корзины:
class Cart {
    fetch() {}
}

В другом роутинг:
const Cart = require('../models/cart')

router.get('/', async (req, res) => {
    const cart = await Cart.fetch()
})

Помогите разобраться, почему возникает ошибка Cart.fetch is not a function, при том что если сделать метод fetch статическим такой ошибки не возникает.
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
@abberati
frontend-разработчик
Обычные методы определены только у инстанса класса, их нет у самого класса. Чтобы вызвать такой метод, класс нужно инстанциировать.
const cart = new Cart()
await cart.fetch()


Статические методы определены только у класса, их нет у инстанса. Для обращения к таким методам класс инстанциировать не нужно.
await Cart.fetch()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Яндекс Москва
от 100 000 до 300 000 ₽
Яндекс Санкт-Петербург
от 100 000 до 300 000 ₽
от 120 000 до 160 000 ₽