본문 바로가기

UI개발

자바스크립트 함수표현식

함수표현식

함수 표현식은 값을 반환하는 식

함수를 변수에 할당하는 방법

 

var funcExpressions = function() {
    console.log('안녕'); 
}; 
funcExpressions();

// funcExpressions 변수에 익명함수를 저장한 것

기명 함수 표현식

var funcExpressions = function namedFuc() { // 이름이 있기 때문에 
    namedFuc(); 			    // 호출 가능
}
namedFuc(); 				    // 밖에서는 호출할 수 없다
funcExpressions();


// funcExpressions 변수에 namedFuc 함수를 저장한 것

 

함수 표현식과 선언식의 차이점 : 호이스팅

함수 표현식 장점 : 익명 함수의 콜백 사용, 클로저

 

즉시 호출 함수 표현식 IIFE

선언과 동시에 호출되는 함수

IIFE는 함수와 변수가 전역 스코프에 영향을 미치지 않도록 방지하는데 사용된다

라이브러리를 만들 때 기본이 되는 구문

 

(function () {
    // 코드 ...
}());

 

매개변수를 받는 iife

(function(msg) { 
	console.log(msg); 
}('안녕'));

기명 iife

(function named() { 
    // 코드 ...
}());

변수를 선언하고 iife 할당

var Module = (funciton() { 
    return '추웡'; 
}());

 

괄호 생략 가능

var Module = funciton() { 
    return '추웡'; 
}();

모듈 패턴

var Module = function(){
    var text = 'ABC';
    return {
    	get : function(){
        	return text;
        },
        set : function(newText){
        	text = newText
        }
    }
}();

Module.text		// undefined 접근할 수 없음
Module.get() 		// ABC
Module.set('에이비씨')
Module.get()		// 에이비씨