자바스크립트 클로저 (Closures)

자바스크립트 변수(variables) 지역(local) 또는 전역(global) 범위에 속할 수 있습니다. 전역 변수(Global variables)는 closures로 지역(개인) (local (private))변수로 만들 수 있습니다. 전역 변수 (Global Variables) 함수는 다음과 같이 함수 내부에(inside) 정의된 모든 변수에 액세스할 수 있습니다: 함수는 함수내에 정의된 변수에 액세스할 수 있습니다: Click Me! function myFunction() { var a = 4; document.getElementById(“demo”).innerHTML = a * a; } Example Click Me! function myFunction() { var a = 4; document.getElementById(“demo”).innerHTML = a * a; } 그러나 함수는 다음과 같이 함수 외부에 정의된 변수에도 액세스할 수 있습니다: Click Me! var a = 4; function myFunction2() { document.getElementById(“demo2”).innerHTML = a * a; } Click Me! var a = 4; function myFunction2() { document.getElementById(“demo2”).innerHTML = a […]

자바스크립트 함수 Apply

자바스크립트 apply() 메소드 apply() 메소드는 call() 메소드와 비슷하다: Example 이 apply() 예제는 myObject에 person의 fullName 메소드를 사용합니다: Mary Doe var person = { firstName:”John”, lastName: “Doe”, fullName: function() { return this.firstName + ” ” + this.lastName; } } var myObject = { firstName:”Mary”, lastName: “Doe”, } x = person.fullName.apply(myObject); document.getElementById(“demo”).innerHTML = x;

자바스크립트 함수 Call

함수는 객체 메소드(Object Methods)입니다 모든 자바스크립트 함수는 객체 메소드입니다. 함수가 자바스크립트 객체(JavaScript object)의 메소드가 아니면, 전역 개체(global object)의 함수입니다(앞 장 참조). 아래 예제는 3개의 속성(firstName, lastName, fullName)을 가진 객체를 만듭니다. Example fullName 속성은 메소드입니다: John Doe var person = { firstName:”John”, lastName: “Doe”, fullName: function() { return this.firstName + ” ” + this.lastName; } } x = person.fullName(); document.getElementById(“demo”).innerHTML = x; fullName 속성은 method입니다. person 객체는 이 메소드(method)의 owner입니다. fullName 속성은 person 객체의 메소드(method)입니다. 자바스크립트 call() 메소드 call() 메소드는 미리 정의된 자바스크립트 함수 메소드(function method)입니다. 이것은, owner object로 첫 번째 인수(매개변수) (first argument (parameter))를 사용하는, 함수를 호출(invoke (call))하기 위해 사용합니다. call()을 사용하여, 다른 객체(another object)에 속하는 메소드(method)를 사용할 수 있습니다. […]

자바스크립트 함수 호출(Invocation)

자바스크립트 함수 내의 코드는, “무언가(something)”가 호출할 때, 실행됩니다. 자바스크립트 함수 호출(Invoking) 함수가 정의될 때 함수 내의 코드는, 함수가 정의될(defined) 때, 실행되지 않습니다. 함수 내부의 코드는, 함수가 호출될(invoked) 때, 실행 됩니다. “invoke a function” 대신 “call a function”이라는 용어를 사용하는 것이 일반적입니다. “call upon a function”, “start a function” 또는 “execute a function”이라고 말하는 것이 일반적입니다. 이 튜토리얼에서 invoke를 사용합니다. 자바스크립트 함수는 호출되지 않고(without being called) 호출되기(be invoked) 때문입니다. 함수를 함수(as a Function)로 호출 Example 전역 함수(myFunction)는 인수(arguments) (a, b)의 곱을 반환합니다: 20 function myFunction(a, b) { return a * b; } document.getElementById(“demo”).innerHTML = myFunction(10, 2); 위의 함수는 어떤 객체(object)에도 속하지 않습니다. 그러나 자바스크립트에는 항상 기본 전역 개체(default global object)가 있습니다. […]

자바스크립트 함수 매개변수 (Parameters)

자바스크립트 함수는 매개변수 값 (인수)(parameter values (arguments))을 검사하지 않습니다. 함수 매개 변수 및 인수 (Parameters and Arguments) 이 튜토리얼 앞 부분에서, 함수는 매개변수(parameters)를 가질 수 있다고 배웠습니다: functionName(parameter1, parameter2, parameter3) { code to be executed } 함수 매개변수(parameters)는 함수 정의(function definition)에 나열한 names입니다. 함수 인수(arguments)는 함수에 전달된 실제 값(values)입니다. 매개변수 규칙 (Parameter Rules) 자바스크립트 함수 정의는 매개 변수에 대한 데이터 유형(types)을 지정하지 않습니다. 자바스크립트 함수는 전달된 인수(arguments)에 대해 유형(type) 검사를 수행하지 않습니다. 자바스크립트 함수는 받은 인수(arguments)의 갯수를 체크하지 않습니다. 매개 변수 기본값 (Parameter Defaults) 함수가 인수 없이(missing arguments) (선언된 것보다 적게) 호출되면, 누락된 값은 undefined로 설정됩니다.: 다음 코드는 가능하지만, 매개 변수(parameter)에 기본값(default value)을 할당하는 것이 좋습니다: Example 함수 매개변수(parameter)에 기본값 […]

자바스크립크 함수 정의

자바스크립트 함수는 function 키워드와 함께 정의됩니다. function 선언(declaration) 또는 function 표현식(expression)을 사용할 수 있습니다. 함수 선언(Function Declarations) 이전 자습서에서, 함수는 다음 구문으로 선언된다(declared)고 배웠습니다: function functionName(parameters) { code to be executed } 선언된 함수는 즉시 실행되지 않습니다. 이것은 “나중에 사용하기 위해 저장”되고, 이후에 호출될 때 실행됩니다. Example 이 예제는 계산을 수행하는 함수를 호출하고, 결과를 반환합니다: 12 var x = myFunction(4, 3); document.getElementById(“demo”).innerHTML = x; function myFunction(a, b) { return a * b; } 세미콜론은 실행 가능한 자바스크립트 문(statements)을 구분하는데 사용됩니다. 함수 선언(declaration)은, 실행문(executable statement)이 아니기 때문에, 세미콜론으로 끝내지 않습니다. 함수 표현식(Function Expressions) 자바스크립트 함수는 표현식(expression)을 사용하여 정의할 수도 있습니다 함수 표현식(function expression)은 변수(variable)에 저장됩니다: Example 함수는 변수에 저장할 수 있습니다: […]