0

プロトタイプの目的は、メソッドとプロパティをグローバルに作成することですか? つまり、すべてのインスタンスがアクセスできるということですか? 上記のメソッドとプロパティはコンストラクター内にありません。つまり、オブジェクトが作成されるたびに作成されないということですか?

プロトタイプは TheClass 内のオブジェクトですか?

TheClass.prototype.someProperty = "hello";

では、上記のステートメントでは、プロトタイプ オブジェクト内でプロパティを作成しているのでしょうか。もしそうなら、プロトタイプオブジェクト内で作成された場合、クラスはどのようにそのプロパティにアクセスできますか?

これらはプロパティにアクセスする方法です

var obj = new TheClass();
alert(obj.someProperty);

これではない

alert(obj.prototype.someProperty);

また、toString()は、toString が属するオブジェクトを呼び出してtoString()を呼び出したプロトタイプ オブジェクト内にありますが、 toString()はプロトタイプ オブジェクトに属しますよね?

オブジェクトの内部にいるプロトタイプではなく、オブジェクトを呼び出すことによって呼び出されるのはなぜですか。私はJavaに精通しており、これはCOMPOSITIONと呼ばれます。

では、なぜこれが機能するのですか?そのINHERITANCEは理解していますが、それはCOMPOSITIONではなく、プロトタイプのtoString()メソッドをオブジェクトに委譲するステートメントを書きませんでした。

alert(theClass);

いいえ

alert(prototype);
4

3 に答える 3

2

特定のクラスから継承するクラスは、そのクラスのプロトタイプのメソッドにアクセスできます。これによりprototype、継承ベースの構造が作成されます。

プロトタイプの目的は、メソッドとプロパティをグローバルに作成することですか?

はい。プロトタイプを使用すると、そのクラスから継承できるクラス メソッドとプロパティのインスタンスを指定できます。

つまり、すべてのインスタンスがアクセスできるということですか?

うん。

プロトタイプは TheClass 内のオブジェクトですか?

いいえ。Prototype は、TheClass から継承するクラスにもアクセスが許可される一連のプロパティです。特定のオブジェクトでプロパティが見つからない場合、そのプロパティのプロトタイプ チェーンが検索されます。

于 2012-05-14T23:14:53.253 に答える
2

JS のプロパティは、プロトタイプ チェーンを使用して検索されます

https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_constructor_prototype

于 2012-05-14T23:15:05.003 に答える
1

プロトタイプの目的は、メソッドとプロパティをグローバルに作成することですか?

はい、関数のすべてのインスタンスが同じメソッドとプロパティにアクセスできるように、プロパティとメソッドをプロトタイプに追加します。関数のプロトタイプのメソッド/プロパティへの変更は、その関数のすべてのインスタンスに影響します

つまり、すべてのインスタンスがアクセスできるということですか?

はい。

上記のメソッドとプロパティはコンストラクタ内にありません。つまり、オブジェクトが作成されるたびに作成されないということですか?

はい、初期化のたびに再作成されるわけではありません。これが主な目的の 1 つです。

于 2012-05-14T23:15:21.987 に答える