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 면에서 아주 조금 유리해 보인다.
댓글 없음:
댓글 쓰기