Giriş işlemi için kısmi uygulama.
önem: 5
Bir önceki Soru `this`'i kaybediyor.’dan biraz daha karmaşık bir göreviniz var.
user
objesi değiştirildi. Şimdi loginOk/loginFail
fonksiyonlarının yerine tek bir fonksiyon user.login(true/false)
var.
Aşağıdaki askPassword
’a ne iletilirse bu user.login(true)
'u ok
veya user.login(fail)
'i fail
olarak çağırır?
function
askPassword
(
ok,
fail
)
{
let
password =
prompt
(
"Password?"
,
''
)
;
if
(
password ==
"rockstar"
)
ok
(
)
;
else
fail
(
)
;
}
let
user =
{
name
:
'John'
,
login
(
result
)
{
alert
(
this
.
name +
(
result ?
' logged in'
:
' failed to log in'
)
)
;
}
}
;
askPassword
(
?
,
?
)
;
// ?
Sadece işaretlenmiş bölümde gerçekleştiriniz.
-
Bir saklayıcı fonksiyon ile, daha net olmak gerekirse ok fonksiyonu ile:
askPassword
(
(
)
=>
user.
login
(
true
)
,
(
)
=>
user.
login
(
false
)
)
;
Böylece
user
dış değişkenlerden alınır ve normal bir biçimde çalıştırılır. -
Veya
user.login
’den bir kısmi fonksiyon üreterek; Bu fonksiyon kaynak olarakuser
kullanır ve doğru ilk argümana sahiptir.askPassword
(
user.
login
.
bind
(
user,
true
)
,
user.
login
.
bind
(
user,
false
)
)
;