Я просто отвечу на ваш концептуальный вопрос, поскольку другие подробно рассмотрели ваш вопрос.
Если у вас есть две функции, как показано ниже, родитель будет хранить ваши данные, а ребенок будет использовать эти данные в любом другом месте . Единственное, что вам нужно сделать, это убедиться, что после вызова parentFunction вы сохраняете результат в другой переменной для использования в другом месте в приложении. Этот «указатель» будет относиться к вашей новой функции, которая будет иметь доступ к исходному состоянию, но функция является определением функции, поэтому вам нужно выполнить функцию, используя желаемые аргументы функции. Как и pointerName () в приведенном ниже примере
const parentFunction = (dataToStoreAndCanBeUsedLater) => {
//can access parent state
const childFunction = () => {
console.log(dataToStoreAndCanBeUsedLater)
}
return childFunction
}
const pointerName = parentFunction('data')
pointerName()
Вот интересный шаблон, использующий ту же идею, но немного другим способом.
const addMinusChain = (initialNumber) => {
const add = (n) => {
initialNumber = initialNumber + n
return addMinusChain(initialNumber)
}
const minus = (n) => {
initialNumber = initialNumber - n
return addMinusChain(initialNumber)
}
const getNumber = () => {
return initialNumber
}
return {
add,
minus,
getNumber
}
}
console.log(addMinusChain(20).add(5).minus(25).getNumber())