2017-04-25 1 views
6

에서 정적 메서드를 호출합니다.JS 나는 정적 메소드를 가진 클래스가 클래스

this.staticMethod() 

그래서 클래스 이름 '사용자'를 쓸 필요가 없습니다.

+2

호는 정적 인 방법과 포인트 그게 전부, 그들은 예를 기반으로하지 않지만 ** 클래스 ** 기반 this.constructor.staticMethod를 추가 할 수 있습니다. – Randy

+0

@Randy 방금 예제로 사용했습니다. 나는 PHP 자체와 같은 것을 원한다. 그래서 클래스를 참조 할 수있다. (인스턴스가 아님) – Chris

+0

파일마다 하나의 클래스를 정의하면'const self = User'와 같은 라인을 추가하고'self '를 사용할 수있다. 파일 전체에서. – mpen

답변

10

static 메소드 호출은 클래스에 직접와 클래스의 인스턴스에 호출하지 되어있다. 정적 메서드는 종종 유틸리티 함수를 만드는 데 사용됩니다.

자세한 내용을 참조하시기 바랍니다 =>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

당신은 정적 메소드를 호출하기 위해이 같은 =>this.constructor.staticMethod());을 할 수 있습니다. 대신 User.staticMethod의

class StaticMethodCall { 
    constructor() { 
    console.log(StaticMethodCall.staticMethod()); 
    // 'static method has been called.' 

    console.log(this.constructor.staticMethod()); 
    // 'static method has been called.' 
    } 

    static staticMethod() { 
    return 'static method has been called.'; 
    } 
} 
1

static 인스턴스가 인스턴스가 아닌 클래스에 바인딩됩니다. 따라서 적어도 클래스 이름을 지정해야합니다.

클래스에 바인딩하지 않으려면 전역으로 만듭니다. MDN 문서에서

0

는()는()

관련 문제