본문 바로가기

[javascript] 선언적함수/ 익명함수

javascript에서 함수는 만드는 방법은 크게 두가지가 있다. 

 

1. 선언적 함수

2. 익명 함수

 

선언적 함수: 말 그대로 함수의 이름을 선언해주는 형태

익명 함수: 함수의 이름이 없는 함수 형태

 

[선언적 함수 예시]

// 선언적 함수 
	function testFunction() {
		alert('call...');
	}
	
	function testFunction2(data) {
		alert('data : ' + data);
	}
	
	function testFunction3(data1, data2) {
		alert(`data1 : ${ data1 }, data2 : ${ data2 }`);
	}

 

[익명 함수 예시]

	var func01 = function() {
		alert('익명함수 call func01()...');
	}
    
    
	//익명함수 함수이름이 없는 함수
	var a = function(){
		alert('선언적 함수 bbb()호출')
	}
	a()//a로 호출해야한다. 

 

 

반드시 알아두어야 할 특징은 우선순위가 익명 함수 > 선언적 함수 라는 점

익명함수와 선언적 함수의 이름이 같을 경우, 익명함수의 우선순위가 더 높다.

 

[우선순위 익명함수 > 선언적 함수 예시]

 

	//익명 함수를 aaa라는 객체 변수에 넣음
    //javascript는 변수를 객체로 인식함
    //aaa라는 변수가 익명함수function을 가르키는 형태
    
    var aaa = function() {
		alert('익명함수 aaa() 호출...');
	}
    //aaa객체변수 호출
	aaa() 
    
    
    
    //aaa라는 함수이름을 호출
	function aaa() {
		alert('선언적 함수 aaa() 호출...');
	}
    
    //"aaa()라는 함수를 호출"--> XXXXXX안됨
    //aaa()라는 익명함수가 우선순위가 높기때문에 aaa()함수 대신
    //aaa라는 객체변수가 호출되서
    //alert('익명함수 aaa()호출')됨!!!!
   	aaa()