|
 |
15년 전 |
함수를 호출할 때 파라메타의 종류에 따라 콜방식이 다르다--;
문자열, 부울, 숫자같은 원형 데이터는 call by value, 객체는 call by reference로 넘겨준다.
함수 리터럴 :
function Test(x,y,z){
alert!(z(x,y));
}
Test(1, 2, function(x,y) {return x * y});
경고창으로 2가 뜬다. 파라메터로 함수도 던져줄 수 있다.
중첩함수 :
안쪽 함수는 바깥쪽 영역 내에서만 동작하며, 바깥 함수의 변수와 인자에 접근할 수 있다.
하지만 바깥 함수는 안쪽 함수의 변수에 접근할 수 없을 뿐더러, 호출 프로그램도 안쪽 함수에 접근할 수 없다.
함수 리터럴을 사용하면 가능하긴 하다. - 클로져(Closure)
function outer(args){
function inner(args){
inner statements;
}
}
클로저(Closure) : 내부 함수가 내부 함수를 둘러싼 외부 함수의 변수나 매개변수를 이용했는데
외부 함수가 종료되어도 내부 함수에서 사용한 변수 값은 내부 함수 내에 계속 유지되는 기능.
안쪽 함수의 영역이 바깥쪽 함수에 반환되고, 결국 호출 프로그램에 추가 되기 때문에..
function Test(x,y,z){
Test.length -> 인자의 갯수 3.
arguments[i] -> 인자 값에 접근.
} |
|
추천 : 473 |
추천
목록
|
|