반응형
JavaScript 정적 메서드 소개
정의상 정적 메서드는 해당 클래스의 인스턴스가 아닌 클래스에 바인딩됩니다.따라서 정적 방식은 도우미 또는 유틸리티 방식을 정의하는 데 유용합니다.
ES6 이전에 정적 메서드를 정의하려면 클래스 생성자에 직접 추가합니다.예를 들어, 다음과 같은 데이터가 있다고 가정합니다.Person다음과 같이 입력합니다.
function Person(name) { this.name = name; } Person.prototype.getName = function () { return this.name; };
Code language: JavaScript (javascript)
다음은 다음과 같은 정적 메서드를 추가합니다.createAnonymous()에게Person입력:
Person.createAnonymous = function (gender) { let name = gender == "male" ? "John Doe" : "Jane Doe"; return new Person(name); };
Code language: JavaScript (javascript)
그createAnonymous()method는 static 메서드로 간주됩니다.이는 method가 어떤 인스턴스에도 의존하지 않기 때문입니다.Person속성 값을 입력합니다.
를 호출하려면createAnonymous()method, 를 사용합니다.Person인스턴스 대신 다음과 같이 입력합니다.
var anonymous = Person.createAnonymous();
Code language: JavaScript (javascript)
ES6의 JavaScript 정적 메서드
ES6에서는 다음 명령어를 사용하여 스태틱메서드를 정의합니다.static키워드를 지정합니다.다음 예제에서는 라고 하는 스태틱 방식을 정의하고 있습니다.createAnonymous()를 위해Person클래스:
class Person { constructor(name) { this.name = name; } getName() { return this.name; } static createAnonymous(gender) { let name = gender == "male" ? "John Doe" : "Jane Doe"; return new Person(name); } }
Code language: JavaScript (javascript)
스태틱 메서드를 호출하려면 다음 구문을 사용합니다.
let anonymous = Person.createAnonymous("male");
Code language: JavaScript (javascript)
클래스의 인스턴스에서 static 메서드를 호출하려고 하면 오류가 발생합니다.예를 들어 다음과 같습니다.
let person = new Person('James Doe'); let anonymous = person.createAnonymous("male");
Code language: JavaScript (javascript)
오류:
TypeError: person.createAnonymous is not a function
Code language: JavaScript (javascript)
클래스 생성자 또는 인스턴스 메서드에서 정적 메서드 호출
클래스 컨스트럭터 또는 인스턴스 메서드에서 스태틱메서드를 호출하려면 클래스 이름 뒤에.및 스태틱 방식:
className.staticMethodName();
Code language: CSS (css)
또는 다음 구문을 사용할 수 있습니다.
this.constructor.staticMethodName();
Code language: CSS (css)
요약
- JavaScript 정적 메서드는 클래스의 인스턴스 간에 공유됩니다.그러므로 그들은 클래스에 묶여있다.
- 해당 클래스의 인스턴스가 아닌 클래스 이름을 사용하여 스태틱메서드를 호출합니다.
- 를 사용합니다.className.staticMethodName()또는this.constructor.staticMethodName()클래스 생성자 또는 인스턴스 메서드에서 정적 메서드를 호출합니다.
참고: https://www.javascripttutorial.net/es6/javascript-static-method/
728x90
반응형
'Programing > Javascript' 카테고리의 다른 글
JavaScript Computed Property (0) | 2022.06.27 |
---|---|
JavaScript Static Properties (0) | 2022.06.27 |
JavaScript Class Expressions (0) | 2022.06.26 |
JavaScript Getters and Setters (0) | 2022.06.26 |
JavaScript 클래스 (0) | 2022.06.26 |
댓글