RSS DEV 커뮤니티

자바스크립트에서 Function.length, Function.name, 다형성, 그리고 NFE 이해하기

자바스크립트 함수는 기본적인 개념으로, 입력값을 제공하면 내부 구조를 이해할 필요 없이 예상되는 결과를 얻는 블랙박스로 생각할 수 있습니다. 자바스크립트의 함수는 객체 타입의 일부이며, `Function.prototype`에 정의된 속성을 상속받습니다. `Function.name` 속성은 함수가 생성될 때 지정된 함수의 이름을 나타냅니다. 익명으로 생성된 함수의 경우 익명이거나 빈 문자열일 수 있습니다. 이 속성은 읽기 전용이며 주로 디버깅 및 오류 메시지에 사용됩니다. `Function.length` 속성은 함수가 예상하는 인수의 개수를 지정합니다. 숫자로 인수의 개수를 반환하며, rest 매개변수나 첫 번째 기본값 이후의 매개변수는 계산하지 않습니다. 각 구조 분해 패턴은 하나의 매개변수로 간주됩니다. 자바스크립트의 다형성은 함수, 메서드 또는 객체가 여러 형태를 취할 수 있는 능력으로, 객체 또는 클래스에 따라 동일한 메서드 이름을 서로 다른 구현에 사용할 수 있도록 합니다. 다형성에는 메서드 오버라이딩과 메서드 오버로딩의 두 가지 유형이 있습니다. 명명된 함수 표현식(NFE, Named Function Expression)은 이름을 가진 함수 표현식을 위한 용어입니다. 함수가 내부적으로 자신을 참조할 수 있도록 하며, 함수 외부에서는 볼 수 없습니다. 이는 함수가 외부 변수가 변경된 경우에도 자신을 재귀적으로 호출해야 할 때 유용합니다. `Function.name`, `Function.length`, 다형성 및 명명된 함수 표현식을 이해하면 개발자의 기술을 향상시키고 자바스크립트 함수를 사용할 때 더 많은 유연성을 제공할 수 있습니다. 이러한 개념은 자주 사용되지 않을 수 있지만, 고급 자바스크립트 개발에는 필수적입니다. `Function.length` 속성은 함수가 예상하는 인수의 개수를 확인하는 데 사용할 수 있으며, 인수의 개수에 따라 호출할 핸들러를 결정하는 `ask` 함수 예제와 같이 특정 상황에서 유용합니다. 명명된 함수 표현식은 외부 변수가 변경된 경우에도 내부적으로 자신을 참조할 수 있는 함수를 생성하는 데 사용할 수 있습니다. 이는 재귀 함수 또는 자신을 호출해야 하는 함수에 유용합니다. 전반적으로 이러한 개념을 이해하면 개발자는 더 유연하고 강력한 코드를 작성할 수 있으며 다양한 상황에서 유용하게 사용할 수 있습니다.
favicon
dev.to
Understanding Function.length, Function.name, Polymorphism, and NFE in JavaScript