Прокомментируйте как получаем значение?

163
13 сентября 2019, 01:00

function ask(question, answer, ok, fail) { 
  var result = prompt(question, ''); 
  if (result.toLowerCase() == answer.toLowerCase()) ok(); 
  else fail(); 
} 
 
var user = { 
  login: 'Василий', 
  password: '12345', 
 
  // метод для вызова из ask 
  loginDone: function(result) { 
    alert( this.login + (result ? ' вошёл в сайт' : ' ошибка входа') ); 
  }, 
 
  checkPassword: function() { 
  	var self = this; 
    ask("Ваш пароль?", this.password, 
      function() { 
        self.loginDone(true); 
      }, 
      function() { 
        self.loginDone(false); 
      } 
    ); 
  } 
}; 
 
var vasya = user; 
user = null; 
vasya.checkPassword()

в ask мы передаем из свойства checkPassword значения; В question получит "Ваш пароль?"; answer получит password - 12345, А дальше не могу понять как тернарный оператор возвращает вошел поселитель на сайт или нет ?

Answer 1

loginDone вызывается с разным значением параметра result из ok и из fail.

Если в тернарном операторе условие true, то он возвращает первый операнд. Если false, то второй.

console.log(true? ' вошёл в сайт' : ' ошибка входа'); 
console.log(false? ' вошёл в сайт' : ' ошибка входа');

READ ALSO
Как заставить цикл ждать событие?

Как заставить цикл ждать событие?

Начал учить JS и возникло желание написать небольшую игру, по типу "показывается цифра в блоке и вам нужно ее ввести за определенное время"Так...

138
fetch запрос POST

fetch запрос POST

Конструктор в классе Category:

146
Как нарисовать ёлку используя только символы “_” и “*”?

Как нарисовать ёлку используя только символы “_” и “*”?

Начал изучать javascriptЗастрял на задаче

127
Uncaught TypeError: undefined is not a function

Uncaught TypeError: undefined is not a function

Почему выбивает ошибку для:

145