NATIVE

settings_applicationsObject  >   settings_applicationsFunction

NATIVE

Draft
  • bug_report

Constructor

설명

함수를 생성하는 방식은 리터럴(Lieteral)과 new 연산자를 통한 생성 방식이 있다. 일반적으로 리터럴로 생성을 하지만 경우에 따라서는 Function() 생성자 함수를 이용할 수도 있다.

리터럴로 생성하는 경우에는 다양한 패턴을 가지고 있다. 자세한 내용은 아래의 튜토리얼을 참조한다.

구문

기본형식
function functionName([parameter1 [, ..[, parameterN]]]) { body }
리터럴로 생성하는 경우
기본형식
new Function( [parameter1, [... parameterN,]] body );
생성자를 이용한 함수 생성

Prototype 체인

Function

  • Methods

    • apply()

      주어진 this 또는 arguments로 함수를 호출한다.
    • bind()

      원본 함수와 동일한 본문을 갖는 바인딩된 함수를 만든다. this 키워드가 있는 경우 실제로 자신을 참조할 수 있도록 활성화된다.
    • call()

      인수를 지정하여 객체의 메소드를 호출한다. apply() 메소드와 매우 흡사하지만 배열 하나만을 인수로 지정하는 apply() 메소드와 달리 인수를 추가적으로 설정할 수 있다는 것이 차이가 있다.
    • toSource()

      객체의 소스코드를 나타내는 문자열을 반환한다. 웹브라우저별 지원 여부를 체크할 필요가 있다.
    • toString()

      Object.prototype.toString() 메소드를 상속받았으며 재정의를 통해 사용하거나 재정의 없이 사용할 수 있다. 이 메소드는 객체가 텍스트 값으로 표시되거나 객체가 문자열이 예상되는 방식으로 참조될 때 호출된다. 객체에 따라서 결과는 다를 수 있다.
  • Properties

    • caller

      지정된 함수를 호출한 함수를 참조한다. strict 모드에서는 사용할 수 없다.
    • length

      함수에 사용 되고 있는 인수의 개수를 참조한다.
    • name

      함수 이름을 참조한다.
    • prototype

      모든 생성자에게 상속되며 생성자의 프로토타입을 나타낸다.

Object

  • Methods

    • hasOwnProperty()

      객체가 특정 프로퍼티를 가지고 있는지를 블린 값으로 반환한다.
    • isPrototypeOf()

      해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다. 이 메소드는 instanceof 연산자와 함께 특정 프로토타입으로부터 상속된 객체만 작동하게 하려는(예를 들어 특정 메소드나 속성이 객체에 있다는걸 보장하려는 때) 코드에서 특히 쓸모가 많다.
    • propertyIsEnumerable()

      매개 변수의 속성이 열거가능한지 여부를 체크한다.
    • toLocaleString()

      객체를 나타내는 문자열을 사용 지역의 방식으로 출력이 된다. 이 메소드는 상속받은 모든 객체가 사용할 수 없고 아래와 같은 상속된 객체에 사용이 된다. Array.prototype.toLocaleString() Number.prototype.toLocaleString() Date.prototype.toLocaleString()
    • toString()

      객체를 나타내는 문자열을 반환한다.
    • valueOf()

      객체의 Primitive(원시) 값을 반환한다.
  • Properties

    • constructor

      객체의 생성자 함수를 참조한다.
    • __proto__

      상속된 [[Prototype]] 참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.

기술 문서

리터럴(Lieteral)로 함수를 생성하는 다양한 패턴

선언식 함수

선언식 함수의 경우 런타임(Runtime)시 선언 위치에 최상위로 끌어올려져 먼저 해석되어지는 호이스팅(Hoisting)이 발생한다. 따라서 선언 위치보다 앞쪽에서 함수를 호출해도 에러는 발생하지 않는다.

function myFunc(msg) {
    alert(msg);
}

myFunc("Hello");

표현식 함수로서 변수에 대입하는 경우

함수를 변수에 담는 방식이며 함수 호출시 변수명을 통해 호출이 가능하다. 선언식 함수와는 다르게 호이스팅(Hoisting)이 되지 않으며 대입 위치보다 앞쪽에서 함수를 호출할 수 없다.

const myFunc = function(msg) {
    alert(msg);
};

myFunc("hello");

표현식 함수로서 인자의 값으로 사용되는 경우

자바스크립트는 고차함수로써 인자로 다른 함수를 지정할 수 있다.

Array.from(myArray, function(currentValue) {
    console.log(currentValue);
});

 

지원 웹브라우저