ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 값으로서의 함수와 콜백 - 함수지향 | 생활코딩
    Javascript/ECMAScript 2009 (ES5) 2020. 2. 3. 21:45
    반응형

    [출처 : https://opentutorials.org

    값으로서의 함수

     

    JavaScript에서는 함수도 객체다. JavaScript의 함수가 다른 언어의 함수와 다른 점은 함수가 값이 될 수 있다는 점이다.

     

    함수는 변수의 값이 될 수 있다.

    function a(){}    // var a = function(){}; 과 동일

    함수는 객체의 값으로 포함될 수 있다

    a = {
      b : function() {}    // 'b'는 속성(property), 'function(){}'은 메소드(method)
    }

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

    function cal (func, num) { return func(num) }
    function increase(num) { return num+1 }
    cal(increase, 1);

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

    function cal(mode) {
    	var func = {
        	'plus' : function(left, right){ return left + right }
        }
        return func[mode];
    }
    calc('plus')(2,1)    // calc('plus') == function(left, right) { ... }

    함수는 배열의 값으로 사용할 수 있다.

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

    ※ 1급 객체 (first class object)

      - 변수(variable)에 담을 수 있다

      - 인자(parameter)로 전달할 수 있다

      - 반환값(return value)으로 전달할 수 있다

     

    ※ 1급 함수 (first class function)

      - 런타임(runtime) 생성이 가능하다

      - 익명(anonymous)으로 생성이 가능하다

     

    # 자바스크립의 함수는 1급 객체인 동시에 1급 함수다.


    콜백

     - 객체의 상태 변화(이벤트)가 발생한 후 수행될 함수를 의미. 즉, 인자 전달 시 함수를 전달

     - 콜백함수는 전달 받은 즉시 바로 실행이 될 필요가 없다. 함수의 이름처럼 “called back” , 함수의 내부의 어느 특정시점에 실행한다.

     

    # 처리의 위임

    - 함수의 인자로 함수를 전달할 수 있다. 값으로 전달된 함수는 호출될 수 있기 때문에, 전달 받은 함수의 동작을 바꿀 수 있다.

     

    # 비동기 처리

      - 시간이 오래걸리는 작업이 있을 때 이 작업이 완료된 후에 처리해야 할 일을 콜백으로 지정하면 해당 작업이 끝났을 때 미리 등록한 작업을 실행하도록 할 수 있다. 

     

    반응형

    댓글

Luster Sun