トッカンソフトウェア

JavaScript Classの作成

Javascriptでクラスを使ってみます。


基本


<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>JavaScriptのテストページ</title>
    <script type="text/javascript">

	class Test {

		constructor(msg) {
			this.msgA = msg;
            }

            msgB = "world";

            get msg1() {
                return this.msgA;
            }
            set msg2(msg) {
                this.msgA = msg;
            }

            showB() {
                alert(this.msgB);
            }
        }

        const test = new Test("aaa");

        test.msg2 = "hello";

        alert(test.msg1);
        test.showB();

    </script>
</head>

<body>
</body>

</html>

プロパティを定義するにはクラス内に定義するかconstructor内にthisを付けて定義します。
プロパティ、メソッドにクラス内でアクセスするにはthisを付けます。
メソッドにget、setを付けるとメソッドをプロパティのように呼び出せます。

継承


<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>JavaScriptのテストページ</title>
    <script type="text/javascript">

        class Test {

            constructor(msg) {
                this.msgA = msg;
            }

            showA() {
                alert(this.msgA);
            }
        }

        class Test1 extends Test {

            constructor(msg1, msg2) {

                super(msg1);
                this.msgB = msg2;
            }

            showB() {
                super.showA();
                alert(this.msgB);
            }
        }

        const test1 = new Test1("aaa", "bbb");

        test1.showA();
        test1.showB();

    </script>
</head>

<body>
</body>

</html>

継承するには継承元のクラスをextendsで指定します。
子クラス内で親クラスのプロパティ、メソッドにアクセスするにはsuperを指定します。

static


<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>JavaScriptのテストページ</title>
    <script type="text/javascript">

        class Test {

            static msgA = "hello";
            
            static {
                this.msgA += " world"
            }
            
            static show() {

                alert(this.msgA);
            }
        }

        Test.show();

    </script>
</head>

<body>
</body>

</html>

staticはクラス自身が持つプロパティ、メソッド。オブジェクトを作成せずに使える。
staticはプロパティ、メソッド定義にstaticを付ける。

private


<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>JavaScriptのテストページ</title>
    <script type="text/javascript">

        class Test {

            #msgA = "hello";

            #addMsg(arg) {

                this.#msgA += arg;
            }

            showMsg() {
                this.#addMsg("world");
                alert(this.#msgA);
            }
        }

        const test = new Test();
        test.showMsg();

    </script>
</head>

<body>
</body>

</html>

privateはクラス外部からアクセスできないプロパティ、メソッド。
privateのプロパティ、メソッドには頭に#を付ける。

ページのトップへ戻る