본문 바로가기

Front/Java Script

값으로서의 함수(변수, 매개변수, 리턴값, 객체속성, 배열값) & 콜백

 

함수와 메소드 용어의 차이

 

1. 함수 : 그냥 정의된 함수

function a(){}

2. 메소드 : 객체 안에 정의된 함수

a = {
  b : function(){ }
}

 


 

값으로서의 함수

 

함수는 값으로서 사용할 수 있기 때문에 아래와 같이 사용 가능하다.

- 변수에 할당

- 매개변수

- 리턴값

- 객체의 속성값

- 배열안의 값

 

* 프로그래밍에서는

변수, 함수의 매개변수, 리턴값 과 같은 용도로 사용될 수 있는 형태의 데이터를

first-class citizen 또는 first-class object 라고 한다.

 

 


 

 

콜백

다른 함수에 대한 인자로 전달되어 호출되는 함수.

 

 

콜백 - 처리의 위임

 

function sortNumber(a,b){
// 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.
    return b-a;

/*

  if(a > b){
      return 1;
  } else if(a < b){
      return -1;
  } else {
      return 0;
  }

*/

}

var numbers = [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];

alert(numbers.sort(sortNumber)); // array, [20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

 

** 어떠한 함수가 앞에 .이 있고 그 앞에 무언가가 있다면 그것은 객체이다. 

여기에서는 .sort() 앞에 있는 numbers가 객체가 되는 것이고,

sort()는 객체안에 들어있는 함수이므로 메소드가 된다.

자바스크립트는 numbers라는 배열을 읽어서 배열객체를 만들어서 numbers라는 변수에 담아준다.

자바스크립트가 기본적으로 가지고 있으면서 제공하는 기능이기 때문에

배열객체는 내장객체(빌트인객체), sort()는 내장메소드(빌트인메소드) 라고 한다.

반대로 사용자가 만든 것은 사용자 정의 객체, 사용자 정의 함수

 

 

 

 

출처

값으로서의 함수와 콜백

opentutorials.org/course/743/6508