온라인강의정리하기/JS

함수의 function과 new Function의 차이점

루체도 2019. 10. 29. 16:06
global.a = 0;

{
 const a = 1;
 
 const test = new Function('return a');
 
 console.log(test());

}

{
  const a = 2;
 
  const test = function() {
 	return a;
  };
 
  console.log(test());
 }

new Function을 통해서 함수를 만들게 되면 코드블럭 안에 있는 const a =1의 값을 return 하는 것이 아니라

전역적으로 선언 되어있는 global.a를 return을 하게 된다.

반면에 그냥 function으로 만든 함수를 실행하게 되면 코드블럭 안에서 만들어준 const a = 2의 값을 리턴을 해줍니다.

필요에 따라서 사용을 하면 되겠지만 내 생각에는 new Function을 사용하는 것보다는 그냥 function을 사용하는 것이

안정성과 다른 사람들이 내 코드를 보고 이해하기에는 편할 것 같다.