[ JavaScript ] 자바스크립트 함수 지향 | 메소드와 함수 차이 | 함수 리턴값 | 함수 배열

2021. 2. 3. 20:48·Archive/Develop
728x90
반응형

이미지 출처 :   https://commons.wikimedia.org/wiki/File:JavaScript-logo.png

 

 

 

 

 

해당 포스팅은 생활코딩의 이고잉 님의 강의를 기반으로 개인 공부용으로 정리한 포스팅임을 미리 알립니다.

 

 

 


 

 

 

값으로서의 함수 - 함수와 메소드의 차이

 

 

JavaScript에서는 함수도 객체입니다. 다시 말해서 일종의 값인 셈이죠.

거의 모든 언어가 함수를 가지고 있는데, JavaScript의 함수가 다른 언어의 함수와 다른 점은

 

함수가 값이 될 수 있다는 점입니다. 

 

 

 

function a(){}

 

 

위의 코드는 a 라는 함수를 선언한 것입니다. 이는 곧 변수 a 에 함수가 담겨있다라고 볼 수 있습니다.

 

 

또한 함수는 객체의 값으로 포함될 수 있습니다.

이렇게 객체의 속성 값으로 담겨진 함수를 메소드(method)라고 부릅니다.

 

 

 

a = {
    b:function(){
    }
};

 

 

정리하자면, 메소드는 객체의 속성값으로 담겨진 함수를 부르는 명칭입니다.

 

 

함수는 값이기 때문에 다른 함수의 인자로 전달 될수도 있습니다.

예제로 살펴보겠습니다.

 

 

function cal(func, num){
    return func(num)
}
function increase(num){
    return num+1
}
function decrease(num){
    return num-1
}
console.log(cal(increase, 1));
console.log(cal(decrease, 1));

 

 

 

10행을 실행하면 함수 increase와 값 1이 함수 cal의 인자로 전달됩니다.

함수 cal은 첫번째 인자로 전달된 increase를 실행하는데,

이 때 두번째 인자의 값이 1을 인자로 전달합니다.

함수 increase은 계산된 결과를 리턴하고 cal은 다시 그 값을 리턴합니다.

 

 

 

함수는 함수의 리턴 값으로도 사용할 수 있습니다.

 

 

 

function cal(mode){
    var funcs = {
        'plus' : function(left, right){return left + right},
        'minus' : function(left, right){return left - right}
    }
    return funcs[mode];
}
console.log(cal('plus')(2,1));
console.log(cal('minus')(2,1));   

 

 

 

 

배열의 값으로도 사용 가능합니다.

 

 

 

 

var process = [
    function(input){ return input + 10;},
    function(input){ return input * input;},
    function(input){ return input / 2;}
];
var input = 1;
for(var i = 0; i < process.length; i++){
    input = process[i](input);
}
console.log(input);

 

 

 

 

 

 

 

이렇게 함수는

 

 

  • 변수

 

  • 매개변수

 

  • 리턴값

 

 

등으로 아주 다양하게 사용될 수 있습니다.

 

 

다양한 용도로 사용할 수 있는 데이터를 first-class citizen(object) 라고 부르는데,

따라서 함수는 first-class citizen(object) 라고 할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ JavaScript ] 자바스크립트 기본 문법 | 내장 함수 & 클로저 개념| Private Variable  (0) 2021.02.03
[ JavaScript ] 자바스크립트 콜백 & 비동기처리  (0) 2021.02.03
[ JavaScript ] 자바스크립트 전역변수와 지역변수 | 변수의 유효범위  (0) 2021.02.03
[ JavaScript ] 자바스크립트 정규표현식 | 정규표현식 객체 생성 | 정규표현식 대소문자 옵션 | match 함수  (0) 2021.02.03
[ JavaScript ] 자바스크립트 기본 문법 | API란 무엇인가 | 자바스크립트 API | node.js API  (0) 2021.02.03
'Archive/Develop' 카테고리의 다른 글
  • [ JavaScript ] 자바스크립트 기본 문법 | 내장 함수 & 클로저 개념| Private Variable
  • [ JavaScript ] 자바스크립트 콜백 & 비동기처리
  • [ JavaScript ] 자바스크립트 전역변수와 지역변수 | 변수의 유효범위
  • [ JavaScript ] 자바스크립트 정규표현식 | 정규표현식 객체 생성 | 정규표현식 대소문자 옵션 | match 함수
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    파이썬 알고리즘
    파이썬 기초
    카카오 100일 프로젝트
    백준
    코드업 기초
    Python
    백준 파이썬
    C++
    파이썬 문제
    자바스크립트 객체
    파이썬 기초 문제
    코드업 파이썬 기초 100제
    Git
    자바스크립트
    백준 풀이
    파이썬
    보안뉴스
    javascript
    백준 문제풀이
    비박스
    oracle db
    Django
    파이썬 백준
    코드업
    Codeup
    오라클
    장고
    Oracle
    자바스크립트 API
    docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ JavaScript ] 자바스크립트 함수 지향 | 메소드와 함수 차이 | 함수 리턴값 | 함수 배열
상단으로

티스토리툴바