본문 바로가기

IT STUDY

JavaScript - 클로젯, 외부,내부함수,arguments

반응형

	//#클로젯
	//outter외부함수에 inner함수가 정의되어있다.
    //클로젯 부분은 따로 공부를 조금 더 해보기!
    
    //외부함수 outter
	function outter() {
    	//내부함수 inner
		function inner() {
			var title = 'coding everybody';
			alert(title);
		}
		//외부함수 outter()호출 받고나서, 내부함수 inner() 호출함
		inner();
	}
	//외부함수 outer()함수 호출
	outter();

	//내부함수는 외부함수의 지역변수에 접근할 수 있다.
	function outter() {

		//외부함수의 지역변수 선언
		var title = 'coding everybody';

		function inner() {
			//외부함수의 지역변수에 있는 변수를 가져올 수 있다.
            //	var title = 'coding everybody';
			alert(title);
		}
		//내부함수 inner()함수 호출
		inner();
	}
	//외부함수 outer()함수 호출
	outter();

	// 결국 둘의 값은 같다 !

	//arguments(유사배열):배열과 비슷한데, 배열은 아님
	//arguments 사용자가 전달한 인자값들이 들어가있음 sum(1,2,3,4)

	function sum() {
		var i = 0;
		var sum = 0;
       
		for (var i = 0; i < arguments.length; i++) {
			document.write(i + ':' + arguments[i] + '
'); sum = sum + arguments[i]; } //sum(1,2,3,4)에서 저장된 값의 합을 return함 return sum; } //javascript는 인자값과 매개변수의 갯수가 일치하지않아도 된다. //반대로 java 같은 경우는 무조건 일치해야함 //sum 함수에서(1,2,3,4) 값을 호출함 document.write('sum result --> ' + sum(1, 2, 3, 4) + '
'); //매개변수 1개 //매개변수 arguments lenght : 어떠한 함수로 유입되었는지 확인할 수 있음 function zero(arg1) { //매개변수는 zero()함수에서 호출받은 값들을 이야기함 document.write('zero.length, 함수의 매개변수 갯수 --> ' + zero.length + '
'); // 1개 document.write('arguments, 함수 호출할 때의 인자값 갯수 --> ' + arguments.length + '
'); // 2개 } //함수 인자값 2개 zero('var1', 'var2');
반응형