함수 심화개념

황성호·2021년 3월 13일
0

‘name’ 프로퍼티

function sayHi() {
  alert("Hi");
}

alert(sayHi.name); // sayHi
------------------------------------------------------
let sayHi = function() {
  alert("Hi");
};

alert(sayHi.name); // sayHi (익명 함수이지만 이름이 있네요!)

‘length’ 프로퍼티
내장 프로퍼티 length는 함수 매개변수의 개수를 반환

function f1(a) {}
function f2(a, b) {}
function many(a, b, ...more) {}

alert(f1.length); // 1
alert(f2.length); // 2
alert(many.length); // 2

클로저를 함수 프로퍼티로 사용가능

function makeCounter() {

  function counter() {
    return counter.count++;
  };

  counter.count = 0;

  return counter;
}

let counter = makeCounter();

counter.count = 10;
alert( counter() ); // 10

'new Function' 문법
문자열을 함수로 바꿀 수 잇음
let func = new Function ([arg1, arg2, ...argN], functionBody);

let sum = new Function('a', 'b', 'return a + b');

alert( sum(1, 2) ); // 3
profile
개발!

0개의 댓글