작성
·
352
0
안녕하세요 유인동님! 순수함수 관련 질문이 있습니다.
<질문1>
```js
const addMaker = (a) => {
// (*)
return (b) => { // ....add
return a + b;
}
}
```
위 코드의 (*) 부분에서 인자 a를 변경하고 있지 않기 때문에 add이 순수함수라고 하셨는데, (*)에서 a를 변경하지만 이후 add 함수가 호출되는 상황에서는 변경되지 않는다는 것이 보장되어도 순수하지 않을걸까요??
가령 다음과 같은 경우에 순수함수를 리턴한다고 보기 어려운 것인지 궁금합니다.
```js
const addMakerInMod3 = (a) => {
a %= 3;
return (b) => { // ....add
return a + b;
}
}
```
<질문2>
모듈 코드 상에 변수를 선언하고 함수 안에서 이를 참조해도 이 변수를 변경하지 않는다는게 보장되면 순수함수라고 부를 수 있을까요?
```js
// module.js
const a = 10;
const add10 = (b) => a +b;
```