>웹 프론트엔드 >JS 튜토리얼 >ES6 클래스에서 정적 메서드를 호출하는 방법: 생성자 및 클래스 이름?

ES6 클래스에서 정적 메서드를 호출하는 방법: 생성자 및 클래스 이름?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 07:50:03958검색

How to Call Static Methods in ES6 Classes: Constructor vs. Class Name?

ES6 클래스에서 정적 메서드 호출

ES6 클래스에서는 static 키워드를 사용하여 정적 메서드를 정의할 수 있습니다. 이러한 정적 메서드를 호출하는 표준 방법이 궁금할 수도 있습니다.

두 가지 접근 방식:

1. 생성자 사용

이 접근 방식에는 클래스 인스턴스의 생성자 속성을 사용하여 정적 메서드에 액세스하는 방법이 포함됩니다. 예:

class SomeObject {
  constructor(n) {
    this.n = n;
  }

  static print(n) {
    console.log(n);
  }

  printN() {
    this.constructor.print(this.n);
  }
}

2. 클래스 이름 사용

또 다른 접근 방식은 클래스 이름을 직접 사용하여 정적 메서드를 호출하는 것입니다. 예:

SomeObject.print(123);

상속의 의미:

상속을 처리하고 정적 메서드를 재정의할 때 두 가지 접근 방식 중 하나를 사용하면 다른 의미가 있습니다.

  • 생성자 접근 방식: 동적 디스패치를 ​​사용하므로 현재 인스턴스의 클래스를 참조합니다. 하위 클래스에서 정적 메서드가 재정의되면 재정의된 메서드가 호출됩니다.
  • 클래스 이름 접근 방식: 잠재적인 재정의를 우회하고 정적 메서드가 정의된 클래스를 직접 참조합니다.

결론:

두 접근 방식 모두 유효하지만 선택은 상속 컨텍스트에서 원하는 동작에 따라 달라집니다. 정적 속성이 일관성을 유지하고 원래 클래스에 속할 것으로 예상되면 클래스 이름 접근 방식을 사용하세요. 현재 인스턴스 클래스의 정적 속성에 대한 동적 액세스가 필요한 경우 생성자 접근 방식을 사용하세요.

위 내용은 ES6 클래스에서 정적 메서드를 호출하는 방법: 생성자 및 클래스 이름?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.