ë¡ê·¸ì¸ì ë¶ë¶ ì ì©í기
ì´ ê³¼ì ë this ê°ì´ undefinedì¸ í¨ì ê³ ì¹ê¸°ë¥¼ ë³íí ì¢ ë ë³µì¡í ê³¼ì ì ëë¤.
ì¬ê¸°ìë user ê°ì²´ë¥¼ ìì í´ userê° loginOk, loginFail ëì ì ì¤ì§ íëì í¨ì user.login(true·false)ë§ ê°ì§ ì ìê² í´ëììµëë¤.
user.login(true)ë ok, user.login(false)ì failì í¸ì¶íê² íë ¤ë©´ askPasswordì 무ìì ë겨ì¤ì¼ í ê¹ì?
function askPassword(ok, fail) {
let password = prompt("ë¹ë°ë²í¸ë¥¼ ì
ë ¥í´ì£¼ì¸ì.", '');
if (password == "rockstar") ok();
else fail();
}
let user = {
name: 'John',
login(result) {
alert( this.name + (result ? ' ë¡ê·¸ì¸ ì±ê³µ' : ' ë¡ê·¸ì¸ ì¤í¨') );
}
};
askPassword(?, ?); // ?
ìì¹ ë ì¤ì 물ìí ë¶ë¶ë§ ìì í´ì¼ í©ëë¤.
-
ëí¼ í¨ìë íì´í í¨ì를 ì¬ì©íë©´ ê°ê²°íê² ìíë 기ë¥ì 구íí ì ììµëë¤.
askPassword(() => user.login(true), () => user.login(false));ì´ ë°©ë²ì ì¬ì©íë©´ askPasswordë ì¸ë¶ ë³ììì
user를 ê°ì ¸ì¤ê¸° ë문ì ìíë 결과를 ì»ì ì ììµëë¤. -
컨í ì¤í¸ê°
userì´ë©´ì ì¬ë°ë¥¸ 첫 ë²ì§¸ ì¸ìê° ìë ë¶ë¶ ì ì© í¨ì를 ë§ë¤ë©´ ìíë 기ë¥ì 구íí ì ììµëë¤.askPassword(user.login.bind(user, true), user.login.bind(user, false));