[컴][nodejs] function parameter vs class parameter

 

function parameter or class parameter

function 을 넘기고, 넘겨받은 function 을 execute 하는 javascript 코드가 아래에 있다. 이 코드를 만약 oop 의 모습으로 구현하는 것이 나을까 아니면 그냥 아래 처럼 function 으로 두는 것이 나을까.

function 을 parameter 로 넘기는 code

function myCallback(param1){
    return 1;   
}

function do(callback){
    callback(1000);
}

// run
do(myCallback)

oop 모양으로 구현

class 를 이용해서 new 를 하게 되는 순간 하게 되는 일들이 있다. (참고: [컴][웹][자바스크립트] proto 와 prototype --> constructor) 그래서 javascript 에서는 직접적으로 function 을 넘겨서 실행하는 것이 더 효율적이긴 하다.

class Callback{
    ...
    run(param1){
        return 1;
    }   
}

function do(callbackClass){
    const obj = new callbackClass()
    obj.run(1000)
}

do(Callback)

instantiate 를 먼저하고 parameter 로 넘기는 것

class Callback{
    ...
    run(param1){
        return 1;
    }   
}

function do(callbackObj){
    callbackObj.run(1000)
}

do(new Callback())
function Callback(){
    ...
    this.run() = function(param1){
        return 1;
    }
}

function do(callbackClass){

    callbackObj.run(1000)
}

do(new Callback())


결론

이것은 js 에서는 class 가 결국 function 이기 때문에, function 을 이용하는 것이 유리해 보인다. 이유는 function 은 new operator 를 굳이 사용하지 않아도 되기 때문이다. new 를 사용하면 js 에서 수행하는 동작이 있는데, 이것을 하지 않아도 되기 때문에 속도면에서 memory 면에서 아주 조금 유리해 보인다.

Reference

  1. [컴][웹][자바스크립트] proto 와 prototype --> constructor

댓글 없음:

댓글 쓰기