@Zukrine

Почему метод «хочет стать» функцией?

Учу методы в js. Когда пишу полной записью, код работает так, как задумывался, но если использую тернарный оператор, то консоль браузера выдает ошибку, дескать "не является функцией". Пытался прямо указать, что переменная userName == true, false, != и т.п. попытки понять хоть что-то или вызвать другую ошибку, но тщетно. Что не нравится браузеру?
Сама ошибка
Uncaught TypeError: {(intermediate value)(intermediate value)(intermediate value)} is not a function at

Код, который выполняется правильно

const userName = prompt('What is your name?');

const greeting = {
    userName,
    'country': 'Russia',
    userGreeting() {
        alert(`Welcome, ${userName} from ${greeting.country}`);
    }
}

if (userName) {
    greeting.userGreeting();
} else {
    alert('I don`t know you');
}


Код, который выдает ошибку

const userName = prompt('What is your name?');

const greeting = {
    userName,
    'country': 'Russia',
    userGreeting() {
        alert(`Welcome, ${userName} from ${greeting.country}`);
    }
}

(userName) ? greeting.userGreeting() : alert('I don`t know you');

  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Потому что точки с запятой нужно ставить.
const greeting = {
...
}; // <-- вот тут!!!

(username) ? ...

или убрать ненужные скобки
const greeting = {
...
}

username ? ...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
Потому что тернарный оператор должен вернуть значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы