en.javascript.info/1-js/06-advanced-functions/10-bind/5-question-use-bind/task.md
Ilya Kantor 7f1d5de09e minor
2019-05-22 02:37:20 +03:00

36 lines
678 B
Markdown

importance: 5
---
# Fix a function that loses "this"
The call to `askPassword()` in the code below should check the password and then call `user.loginOk/loginFail` depending on the answer.
But it leads to an error. Why?
Fix the highlighted line for everything to start working right (other lines are not to be changed).
```js run
function askPassword(ok, fail) {
let password = prompt("Password?", '');
if (password == "rockstar") ok();
else fail();
}
let user = {
name: 'John',
loginOk() {
alert(`${this.name} logged in`);
},
loginFail() {
alert(`${this.name} failed to log in`);
},
};
*!*
askPassword(user.loginOk, user.loginFail);
*/!*
```