js koans 오답/리뷰노트(Functions)

GY·2021년 6월 20일
0

[JS] 개념 정리

목록 보기
12/32
post-thumbnail
it("should use lexical scoping to synthesise functions", function () {
   function makeMysteryFunction(makerValue) {
     var newFunction = function doMysteriousThing(param) {
       return makerValue + param;
     };
     return newFunction;
   }

   var mysteryFunction3 = makeMysteryFunction(3);
   var mysteryFunction5 = makeMysteryFunction(5);

   expect(mysteryFunction3(10) + mysteryFunction5(5)).toBe(23);
 });
 //makemysteryfunction의 인자는 makervalue,
 //mysteryfunction의 인자는 param에 들어가는 것 같다.
//잘 이해가 되지 않는다..

mysteryFunction3 은 3이라는 인자를 전달하는 makeMysteryFunction(3)이 되는 것이고, 
mysteryfunction3(10)은 이 함수새 새로운 인자를 다시 전달하게 된다.
makerValue+param을 리턴하므로 3+10=13
마찬가지로 mysteryFunction5(5)의 리턴값은 10으로 13+10=23이다.
profile
Why?에서 시작해 How를 찾는 과정을 좋아합니다. 그 고민과 성장의 과정을 꾸준히 기록하고자 합니다.

0개의 댓글