TOP - JavaScript - プロトタイプ

プロトタイプを利用するとメソッドを共有できます。
メソッドだけではなく定数などにも利用できます。

function 名前1() ブロック1

function 名前2() ブロック2

名前1.prototype.名前3 = 名前2;
名前1     : 生成する定義済みオブジェクト(コンストラクタ)名
名前2     : メソッドとして使用する関数の名前
名前3     : プロトタイプに指定するメソッド名
ブロック1 : コンストラクタを定義するブロック
ブロック2 : メソッドとして使用する関数を定義するブロック

(例)
<SCRIPT type="text/javascript">
<!--
    function test_method()
    {
        return this.test1 + " : " + this.test2;
    }

    function TestConstructor(x1, x2)
    {
        this.test1 = x1;
        this.test2 = x2;
    }

    TestConstructor.prototype.test3 = test_method;          // プロトタイプでメソッドを共有
    TestConstructor.prototype.test4 = "abc";                // プロトタイプで文字列を共有

    function btnclick()
    {
        var s = "";

        var test_object1 = new TestConstructor("a", "b");
        var test_object2 = new TestConstructor("a", "b");

        s += test_object1.test3() + "\n";
        s += test_object2.test3() + "\n";

        s += test_object1.test4 + "\n";
        s += test_object2.test4 + "\n";

        TestConstructor.prototype.test4 = "def";            // プロトタイプのプロパティを変更

        s += test_object1.test4 + "\n";                     // オブジェクト内の値も変更
        s += test_object2.test4 + "\n";

        alert(s);
    }
//-->
</SCRIPT>


Copyright(C) 2006-2011 CLAYPOT. All Rights Reserved.