以下に一般的に使用されるメソッドをいくつか示します。
1. オブジェクトの偽装
原則: コンストラクターは単なる関数であるため、コンストラクターは this キーワードを使用して値を割り当てます。このようにして、classB は classA のコンストラクターで定義されたプロパティとメソッドを受け取ります。例:
function classA(name)
{
this.name=name; this.showName=function(){alert(this.name);}
}
function classB(name)
{
this.newMethod = classA;
this.newMethod(name) ;
}
obj = new classA("hero");
objB = new classB("dby"); // ヒーロー
objB.showName (); // print dby 説明 classB は classA のメソッドを継承します。
オブジェクトの偽装は、たとえば、
function classz(){
this.newMethod = classX;
this.newMethod(); this.newMethod;
this.newMethod=classY ;
this.newMethod():
delete this.newMethod;
ただし、classX と classY が
2.call() メソッド
call メソッドは、最初のパラメーターが this のオブジェクトとして使用されます。 、その他のパラメータは関数に直接渡されます。
コードをコピーします。
obj.name="hero"; 🎜>sayName.call(obj,"hello," );
関数 classA(name)
{
this.name=name;
this.showName=function(){alert(this.
関数 classB (名前)
{
classA.call(this,name);
objB = new classB("bing");
objB.showName();////説明 classB は classA の showName メソッドを継承します
3.apply() メソッド
apply() メソッドには 2 つのパラメータがあり、1 つはこのオブジェクトとして使用され、もう 1 つは関数
コードの配列
に渡されます。コードは次のとおりです。
function SayName(perfix)
4. プロトタイプ チェーン
プロトタイプ オブジェクトのプロパティとメソッドは、対応するクラスのすべてのインスタンスに渡されます。プロトタイプ チェーンが使用されます。
コードをコピー
コードは次のとおりです。
function classA (){}
classA.prototype.name="hero";
のメソッドを継承します。ここでは、classA のコンストラクターを呼び出すことに注意する必要があります。パラメーターが渡されない場合、これはプロトタイプ チェーンの標準的な方法であり、クラス A のコンストラクターが関数にはパラメータがありません。
また、サブクラスのすべてのプロパティとメソッドは、プロトタイプ属性が割り当てられた後に表示され、その中に存在する必要があります。オブジェクトのプロトタイプ属性が置き換えられるため、以前に割り当てられた値は削除されます。新しいオブジェクトを使用すると、新しいメソッドが追加された元のオブジェクトは破棄されます。
5 混合メソッド
は、偽装を使用してコンストラクター プロパティを定義し、プロトタイプ メソッドを使用してオブジェクト メソッドを定義します。
コードをコピー
コードは次のとおりです。
function classA(name)
{
classB.prototype.showName1=function(){alert(this.name "*****");
obj = new classB("hero");
obj.showName();
classB のコンストラクターで、 call メソッドを呼び出して classA の name 属性を取得し、プロトタイプ チェーンを使用して classA の showName メソッドを継承します。