Я относительно новичок в JS и пытаюсь понять, как работает область действия с дочерними объектами / функциями.
Например:
const b = {
c: () => {
console.log("C", foo)
}
}
const x = (foo) => {
console.log("X", foo)
return {
a: () => {
console.log("A", foo)
},
b: b
}
}
i = x("FOO")
i.a()
b.c()
Я надеюсь увидетьвывод FOO
во всех 3 случаях - однако я действительно вижу:
X FOO
A FOO
Uncaught ReferenceError: foo не определена в Object.c
Я пытаюсь создать функцию, в которой все ее методы фактически сопоставлены с внешними / импортированными методами, но, так как им всем нужен доступ к foo
, это не работает.Есть ли способ, которым b
(c
) может получить доступ к foo
?Или альтернативный способ справиться с этой ситуацией?