JS

보다 나은 자바스크립트 - 함수

아거스 2010. 12. 9. 01:39

Function은 자바스크립트의 내장객체 입니다.

일반적으로 함수를 정의하는 방법은 다음과 같습니다.

function add(number1, number2) {
    return number1 + number2;
}
var total = add(12,25);

그런데 앞 포스팅에서 언급했지만 객체의 생성은 new 연산자를 사용한다고 하였습니다.
new 연산자를 사용하여 함수를 선언해보겠습니다.

//우선 함수객체의 첫 자는 대문자 F입니다.
//함수의 마지막 인자값이 함수의 몸체(소스)가 됩니다.

var sum = new Function("number1", "number2", "return number1 + number2;");
var total = sum(12,25);

요번에는 익명함수를 작성해 보도록 하겠습니다.

var  adder = function(number1, number2) {
    return number1 + number2;
}
var total = adder(12,25);

이상으로 함수를 작성하는 세가지 방법을 알아봤습니다.
위의 add, sum, adder은 모두 내장객체인 Function객체의 참조이므로 전역에서 호출이 가능합니다.

자바스크립트의 변수 범위는 자바와 같습니다.
즉, 함수 내에서의 변수는 함수 내부에서만 사용가능하며, 함수 밖에 선언된 변수의 범위는 전역이 됩니다.

또한 자바스크립트에서는 아래와 같이 중첩함수가 가능합니다.

function calculateTax(value) {
  function taxRate() {
    return 0.1;
  }
  return value + (value * taxRate());
}

이런 경우 taxRate함수는 calculateTax함수의 지역함수가 되며, calculateTax함수의 밖에서는 직접 확인이 불가능합니다.