ÐеÑевÑÑка ÑинÑакÑиÑÑ
Який ÑезÑлÑÑÐ°Ñ ÑÑого кодÑ?
let user = {
name: "Ðван",
go: function() { alert(this.name) }
}
(user.go)()
Ð.С. ТÑÑ Ñ Ð¿Ð°ÑÑка :)
Ðомилка!
СпÑобÑйÑе:
let user = {
name: "Ðван",
go: function() { alert(this.name) }
}
(user.go)() // помилка!
ÐовÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñо Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ Ð² бÑлÑÑоÑÑÑ Ð±ÑаÑзеÑÑв не Ð´Ð°Ñ Ð½Ð°Ð¼ Ð²ÐµÐ»Ð¸ÐºÑ ÐºÑлÑкÑÑÑÑ Ð¿Ñдказок пÑо Ñе, Ñо пÑÑло не Ñак.
Ðомилка зâÑвлÑÑÑÑÑÑ, оÑкÑлÑки кÑапка з ÐºÐ¾Ð¼Ð¾Ñ Ð²ÑдÑÑÑÐ½Ñ Ð¿ÑÑÐ»Ñ user = {...}.
JavaScript не вÑÑавлÑÑ Ð°Ð²ÑомаÑиÑно кÑÐ°Ð¿ÐºÑ Ð· ÐºÐ¾Ð¼Ð¾Ñ Ð¿ÐµÑед дÑжками (user.go)() ÑомÑ, Ñо вÑн ÑиÑÐ°Ñ ÐºÐ¾Ð´, Ñк:
let user = { go:... }(user.go)()
Ð¢Ð¾Ð´Ñ Ð¼Ð¸ Ñакож можемо побаÑиÑи, Ñо Ñакий ÑпÑлÑний виÑаз ÑинÑакÑиÑно Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÐ¾Ð¼ обâÑкÑа { go: ... } Ñк ÑÑнкÑÑÑ Ð· аÑгÑменÑом (user.go). Ð Ñе Ñакож вÑдбÑваÑÑÑÑÑ Ð½Ð° ÑÑй же лÑнÑÑ, з let user, ÑомÑ, оÑкÑлÑки обâÑÐºÑ user Ñе не визнаÑений, Ð²Ð¸Ð½Ð¸ÐºÐ°Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.
ЯкÑо ми вÑÑавлÑÑмо кÑÐ°Ð¿ÐºÑ Ð· комоÑ, вÑе добÑе:
let user = {
name: "Ðван",
go: function() { alert(this.name) }
};
(user.go)() // Ðван
ÐвеÑнÑÑÑ ÑвагÑ, Ñо дÑжки навколо (user.go) нÑÑого не ÑоблÑÑÑ ÑÑÑ. ÐазвиÑай вони вÑÑановлÑÑÑÑ Ð¿Ð¾ÑÑдок опеÑаÑÑй, але ÑÑÑ ÐºÑапка ÑпÑаÑÑовÑÑ ÑпоÑаÑÐºÑ Ð² бÑдÑ-ÑÐºÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ, ÑÐ¾Ð¼Ñ Ð½ÐµÐ¼Ð°Ñ ÐµÑекÑÑ. ТÑлÑки гÑÐ°Ñ ÑÐ¾Ð»Ñ Ð»Ð¸Ñе кÑапка з ÐºÐ¾Ð¼Ð¾Ñ Ð²ÐºÑнÑÑ.