윤인성 | 모던 웹을 위한 JavaScript + jQuery 입문 3판 30강 - 함수를 리턴하는 함수
페이지 정보
- 조회
- 610
본문
※ 영상을 선명하게 보기 안내
- 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
- 팝업목록에서 "품질" 선택하세요.
- 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
윤인성님의 javascript강의 청각장애인을 위한 자막
안녕하세요 모던 웹을 위한 자바스크립트 제이쿼리 이 먼 3판
30강 되겠고요 이번 강의에서는 141 페이지에 있는 5.9 절함수를 l 나는 함수와 142 페이지에 있는 5점 10절 클로저 에
대해서 살펴보도록 하겠습니다
10탄 처음 보면 내용이 굉장히 당황스러울 수 있는 내용일 뿐이지 실제로
그렇게 어렵지는 않아요 그래서 곧바로 살펴보도록 하겠습니다
일단 체계 5 다시 25 와 같은 예제를 만들어 보겠는데 요 이름은
리턴 펑션 이라는 이름의 함수를 만들고
1 리턴 펑션 이라는 녀석을 호출 해보도록 하겠습니다
어쨌거나 이 함수는 이름 그대로 함수를 리턴 해보도록 할텐데요
우리 감 최악의 있는 형태를 바로 오멘 약간 당황을 할 수가 있어요
그래서 일단 써보고 약간 풀어서 설명을 하도록 하겠습니다
일단 지금 코드를 보시게 되면 은 지금 화면과 같이 써 있는데요
과로가 2개 연속으로 나오니까 이게 대체 뭔가 도 쉽고 여기에서 펑션
안에 펑션 있으니까
또 이게 뭔가 도 싶은 경우가 있을텐데요 굉장히 간단해요 그냥 우리 감
9 붓으로 10 을 만들고 아웃풋을 리턴을 했던 것처럼 그냥 함수로
아웃풋이 라는 변수를 만들고 웃풋을 l 난 것이 전부입니다
따라서 리턴 성선 이라는 함수를 호출하게 되면 이며 석은 아웃풋이 나오게
되서
이 함수가 나오게 되겠죠 그래서
이 함수를 곧바로 실행을 하는 형태라고 보시면 되겠습니다
어쨌거나 다시 원래대로 돌려 놓게 되면
요러한 형태인데요 이러한 지구로 자바스크립트 경우에는 함수를 매개 변수를
전달하는 것도 가능하고 반대로 함수를 리턴 으로 전달하는 것도 가능하다
라는 것을 기억해 주시면 좋겠습니다
저 쪽과는 이제 5점 10절 풀어져 되겠는데요 클로저 라는 용어와 굉장히
다양한 형태로 사용이 되기 때문에 그 모든 것을 뭐 하나 하나 정리하는
것보다는 이게 어떤 느낌이다 라는 것을 기억을 해 주시면 좋겠습니다
어쨌든 난 프로그래밍 언어는 매우 효율적으로 작동을 하게 설계가 되어
있습니다
예를 들어서 우리가 함수 내부에서
vara 는 12 라고 선언을 하고 var p 는 22 라고 선언을 하고
부위 arc 는 32 라고 선언을 하게 되면 이 리턴 펑션 이라는 함수를
호출 했을 때의 a 와 b 와 c 를 처음 생성을 하고 이게 함수가
끝나는 순간 더 이상 필요가 없다고 판단되는 녀석들은 메모리 위에서 지어
버리게 됩니다
한마디로 필요하면 생성을 하고 필요가 없어지는 순간 모두 메모리 위에서
날려 버린다 는 뜻인데요
함수 를 리턴하는 함수를 사용할 경우에는
이게 약간 위배되는 경우가 있어요 예를 들어서 현재 코드에서 la 얼얼
드 비 그리고
얼얼 dc 를 호출해 보도록 하겠습니다 그리고
리턴 성 션으로 리턴된 함수는 현재 얼얼 찌의 열을 티비 얼얼 2c 않은
녀석이 2.2 녀석을 곧바로 실행을 해서 이와 같은 형태로 함수를 구현해
보도록 하겠습니다
그런데 아까 말했던 것처럼 함수가 끝날 때 필요 없는 변수는 모두 날려
버리게 되요 근데
필요없는 녀석인가 확인을 해보니까 함수 내부에 함수에서 abc 라는
녀석을 사용하고 있죠 그래서 프로그래밍 언어가 자체적으로
함수 내부에 있는 변수 인데도 불구하고 abc 라는 녀석을 유지하게
됩니다
한번 저장을 하고 코드의 실행 결과를 살펴보도록 하겠습니다
저장을 하고 실행을 하게 되면 일단 지금 화면과 같이 십을 출력을 하게
되고 이어서 20을 출력을 하고 30을 출력을 하게 됩니다
그래서 이와 같은 형태로 변수 a b c 라는 게 값이 계속 남아
있다는게 바로 포인트 되겠습니다
어쨌거나 님 녀석을 활용하게 되면 굉장히 특이한 것들이 많이 발생하게
되는데요
예를 들어서 굉장히 그냥 예제 적인 이지만 매개변수로 데이터 라는 것을
보내서 데이터에 2를 곱하고 데이터에 2를 곱하고
데이터에
3 을 곱하는 형태들을 취할 수 있습니다
이렇게 만들게 되면 리턴 펑션 을 호출할 때 50 이라고 입력을 하거나
22 라고 입력을 하거나 30 이라고 입력을 해서
함수 내부에 있는 변수들을 여러개를 유치하는 것도 가능합니다
일단 이 코드를 보시게 되면 왜 이런 형태로 사용 하지 라는 의문이 드실
수 있는데요 이 의문 같은 경우에는 우리가 7장 이 가서 해결을 해보도록
하겠고요
일단 이러한 식으로 함수 를 리턴하는 함수를 사용했을 경우에 장점이
발생하는 것만 살펴보고 오늘 강의를 마치도록 하겠습니다 자 일단 함수
안에 선언한 변수들은 함수 밖에서 사용할 수가 없습니다 따라서
뭐를 두루 밖에서 a 를 출력을 하거나 b 를 줄여 걸어가 나 c 를
출력하는 것은 불가능합니다
그런데 이러한 죽으로 함수를 선언 을 하게 되면
abc 라는 변수가 한꺼번에 생성이 되고
유지 되어서 남아서 활용할 수 있게 됩니다
따라서 두가지 장점이 생기게 되는데요 첫번째는 함수 외부에서 사용할 수
없게 되면서 더 이상 abc 에 접근할 수 없게 되면서 이 녀석들이 보호
된다는 것 그리고 두번째는
2 a b c 라는 값들이 함수를 호출할 때마다 생성이 되면서 우리가 그
값을 활용할 수 있게 된다는 것
이렇게 두가지 인데요 사실 현재 단계에선 이 두가지의 장점이 뭔지
명확하게 알기가 힘듭니다 그래서 우리가 일단 이정도로 하고 넘어가도록
하고요
7장에서 다시 이 내용을 살펴보면서 캡슐 1
아니면은 인스턴스 를 생성하는 방법 등에 대해서 살펴보도록 하겠습니다
어쨌거나 오늘 강의는 여기까지 되겠구요 오늘 강의가 약간 애매하긴 한데
이러한 개념이 있다고만 기억을 해 주시고
일단
목 기억만 하고 7장 까지 버텨 주시면 감사하겠습니다
어쨌건 오늘 강의는 여기까지 되겠구요 다음 강의에서 뵙도록 하겠습니다
감사합니다.
댓글 0개
등록된 댓글이 없습니다.