온라인강의정리하기/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을 사용하는 것이
안정성과 다른 사람들이 내 코드를 보고 이해하기에는 편할 것 같다.