# new Function 함수
- 런타임상에 문자열을 사용해 함수를 만들 수 있다는 장점.
- 함수의 인자값을 서버로 부터 받아서 동적으로 함수를 생성할 때, 유용하게 사용 가능.
- 단, new Function의 생성은 오직 전역 변수에만 접근 가능
# newFunction 함수 문법
var function = new Function([arg1, arg2 ... argN] , functionBody);
# new Function 예시
- sum 함수
var sum = new Function('a' , 'b' , 'return a + b;');
var sum = new Function('a , b' , 'return a + b;');
sum(1,2); //3
- alert 띄우기
var alertFunc = new Function( 'v', 'alert(v)'));
- 화살표 함수 생성하기
function arrowFuncMake(str) {
var splitted = str.split("=>");
console.log(splitted);
return new Function(splitted[0], "return (" + splitted[1] + ");");
}
arrowFuncMake('n => n * 10')(10);
// 100
arrowFuncMake('n => n * 10')(20);
// 200
arrowFuncMake('n => n * 10')(30);
// 300
arrowFuncMake('a ,b => a + b')(10,20);
// 30
# new Fucntion은 전역 변수만 접근 가능
var value = "1111";
function getFunc() {
var value = "test";
var func = new Function('alert(value)');
return func;
}
getFunc()();
// alert시 1111이 띄워짐
'[javascript]' 카테고리의 다른 글
[javascript]Call 메소드 함수 예시 (0) | 2020.08.17 |
---|---|
[javascript] arguments 인자값의 변화 (0) | 2020.08.02 |
[javascript] 즉시함수의 여러가지 종류 (0) | 2020.04.06 |
[javascript] arr[i] = i 와 arr.push(i)의 성능 측정 (0) | 2020.04.05 |
[Jquery] 버튼 이미지 슬라이더 (0) | 2019.04.27 |