자바스크립트 일급객체

_dodo_hee·2023년 10월 19일
0

JAVASCRIPT

목록 보기
15/17
post-thumbnail

일급 객체

일급 객체란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체

함수가 일급객체라는 것은 함수를 객체와 동일하게 사용할 수 없다라는 의미.

일급 객체 특징

  • 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.
  • 변수나 자료구조등에 저장할 수 있다.
  • 함수의 매개변수에 전달할 수 있다.
  • 함수의 반환값으로 사용할 수 있다.*
// 1. 함수는 무명 리터럴로 생성할 수 있다.
const increase = function (num) {
	return ++num;
}

// 2. 함수는 객체에 저장할 수 있다.
const predicates = {increase,decrease};

// 3. 함수의 매개변수에 전달할 수 있다.
// 4. 함수의 반환값으로 사용할 수 있다.
function makeCounter(predicate){
	let num = 0;
    
    return function(){
    	num = predicate(num);
        return num;
    }
}

함수형 프로그래밍

함수형 프로그래밍은 함수의 응용을 강조한다.
프로그래밍이 문이 아닌 식이나 선언으로 수행되는 선언형 프로그래밍 패러다임을 따르고 있다.

함수형 프로그래밍에서는

  • 순수함수 : 어떤 외부 상태에 의존하지도 않고, 변경하지도 않는, 즉 부수 효과가 없는 함수
  • 비순수함수 : 외부 상태에 의존하거나 외부 상태를 변경하는 즉, 부수 효과가 있는 함수

순수함수

어떤 외부 상태에도 의존하지 않고 외부 상태를 변경하지도 않는 함수

  • 동일한 인자가 전달되면 언제나 동일한 값을 반환하는 함수
  • 어떤 외부 상태에 의존하지 않고 오직 매개변수를 통해 함수 내부로 전달되 인수에게만 의존해 반환값을 만듦.
  • 함수 외부 상테에 의존하는 함수는 외부 상태에 따라 반환값이 달라짐.
  • 함수의 외부 상태를 변경하지 않음.
var count = 0;

// 순수함수
function increase(n){
	return ++n;  
}

// 순수함수가 반환한 결과값을 변수에 재할당해서 상태를 변경
count = increase(count);
console.log(count); //1

비순수함수

외부 상태에 의존하거나 외부 상태를 변경하는 함수

  • 함수의 외부 상태에 따라 반환값이 달라지는 함수.
  • 외부 상태에 의존하는 함수
  • 함수의 외부 상태를 변경하는 부수효과(side effect)가 있다.
var count = 0;

// 비순수함수
function increase(){
	return ++count;
}

// 비순수함수는 외부 상태를 변경해 상태 변화를 추적하기 어려움.
increase();
console.log(count); //1
profile
무럭무럭 자라나는 도도 개발성장일기

0개의 댓글