web-dev-qa-db-ja.com

JavaScript ES6でクラスにメソッドを追加する方法

新しい構文を使用して、JavaScriptクラスにメソッドを追加する必要があります。私はこの方法を試しました:

class X{

    constructor() {
        this.a = 'b'
    }

    x(){

    }
}

X.prototype.y = function (){
    console.log('y')
}

var x = new X()

x.y()

console.log(X) // print the  the class but not the new method.

それはちょうど印刷します:

class X{

    constructor() {
        this.a = 'b'
    }

    x(){}
}

しかし、私は期待しました

class X{

        constructor() {
            this.a = 'b'
        }

        x(){}

        y(){
            console.log('y');
        }
    }

Javascriptクラスに新しいメソッドを追加するにはどうすればよいですか?

10
Natanael

これは正常に機能します。これをgoogle chrome consoleで確認している場合は、protoノードを展開して確認するか、console.log(X.y)を確認してください。またはconsole.log(X.prototype.y)またはconsole.log(x.y)これはその関数を出力する必要があります

6
Ammar Hasan