1

JavaScriptの継承を理解しようとしています。プロトタイプを使用して、子クラスをその親にリンクしています。しかし、関係を定義するとすぐに、親クラスのコンストラクターが実行を開始します。

    <script type="text/javascript">
        function Person ()
        {
            window.alert('We\'ve got a new person!');
        }

        function King ()
        {
            window.alert('We\'ve got a new king!');
        }

        King.prototype = new Person();

        //King.prototype.constructor = King;
        //var erik = new King();
    </script>

JavaScriptで継承を使用する正しい方法は何ですか?

混乱を引き起こしたチュートリアル:https ://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript

4

1 に答える 1

1

これは、Javascriptがプロトタイプ言語であり、その方法で継承を実際にサポートしていないためです。オブジェクトはルーズタイプであり、追加の関数やプロパティをその場で拡張できます。

つまり、実際に行うのは、instancePersonを作成することです。これは、追加のメソッドで拡張できます。

tuturialはこれを述べています:

JavaScriptでは、親クラスのインスタンスを子クラスに割り当ててから、それを特殊化することでこれを行います。

実際の(まあ、クラスベースの)OOに慣れていると、かなり混乱します。

于 2012-08-31T21:07:34.680 に答える