- 함수와 변수 사용
자바스크립트를 하면 함수와 변수 사용방법은 기본적이지만
자바 개발자입장에서는 처음에 혼란스러울 수도 있다.
함수를 값으로 취급한다. 라는 것을 새기고 공부를 해야겠다.
사용방법이 워낙 많아서 일단 기초중의 기초부터 써본다.
function setName(name) {
console.log(name);
}
setName('김율프');
함수를 소환할때 매개변수로 값을 넣어 사용하는 방식이
우리가 일반적으로 쉽게 사용하는 부분이다.
function setName(name) {
console.log(name);
}
var a = setName;
a('김율프')
그런데 자바스크립트에서는 함수를 값으로 취급하기 때문에
변수에 함수를 넣어 그 변수를 함수처럼 사용하는 것이 가능하다.
setName()가 아닌 setName은 함수내용 자체를 담고 있는 값이고,
그것을 변수 a에 넣어 a()라는 함수로 사용하는 것이 가능하다.
function setName(name) {
return function() {
return name;
}
}
var sayMyName = setName("김율프");
sayMyName();
실행 순서는 다음과 같다.
(1) 전체적인 코드의 전역 컨텍스트 생성
(2) 호이스팅으로 함수 setName 선언, sayMyName 선언
(3) setName("김율프");를 호출
(4) 함수 setName의 컨텍스트가 열림
(5) name에 "김율프"를 할당
(6) function() { return name;}이라는 익명함수 선언
(7) 익명함수를 반환, setName 실행컨텍스트 종료
(8) 반환 내용을 sayMyName이 받음
(9) sayMyName() 호출
(10) sayMyName의 실행컨텍트가 열림
(11) 맨 안쪽의 return name에서 name탐색,
없으니까 setName에서 name탐색하여 아까 할당된
"김율프"를 찾아서 반환
(12) 실행컨텍스트 및 전역 컨텍스트 종료
'프로그래밍 > JavaScript' 카테고리의 다른 글
자바스크립트 핵심 개념 : prototype (2) | 2020.12.20 |
---|---|
자바스크립트 핵심 개념 : 클로저 (0) | 2020.12.20 |
자바스크립트 핵심 개념 : this, 이것만 알면 끝 (0) | 2020.12.18 |
자바스크립트 핵심 개념 : call / apply / bind 메서드 이해하기 (0) | 2020.12.18 |
자바스크립트 핵심 개념 : 콜백 함수 (0) | 2020.12.18 |