ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でインスタンス メソッドを定義できますか?

JavaScript でインスタンス メソッドを定義できますか?

青灯夜游
青灯夜游オリジナル
2021-11-22 14:03:181778ブラウズ

Javascript ではインスタンス メソッドを定義できます。メソッド: 1. JavaScript オブジェクト プロトタイプ参照プロトタイプを使用してインスタンス メソッドを実装します。2. オブジェクト インスタンスに直接メソッドを定義します。3. このポインタを介してインスタンス メソッドを定義します。

JavaScript でインスタンス メソッドを定義できますか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

#1. JavaScript オブジェクト プロトタイプ参照プロトタイプを使用して、インスタンス メソッドを実装します

var BaseClass = function() {};  
BaseClass.prototype.method1 = function(){  
      alert(' This is a instance method ');  
}  
var instance1 = new BaseClass();  
instance1.method1(); //This is a instance method

2. インスタンスにメソッド (オブジェクト) を直接定義します

var BaseClass = function() {};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' This is a instance method too ');  
}   
instance1.method1();//This is a instance method too

3. このポインタを介してインスタンス メソッド (変数) を定義します

var BaseClass = function() {  
 this.method1 = function(){  
   alert(' Defined by the "this" instance method');  
  }  
 };  
var instance1 = new BaseClass();  
instance1.method1();//Defined by the "this" instance method

次に、同時に、インスタンス、プロトタイプ参照、および「this」に同じインスタンスを定義します。 " メソッドの後、インスタンスによって最初に呼び出されるのはどれですか?

var BaseClass = function() {  
this.method1 = function(){  
       alert(' Defined by the "this" in the instance method');  
 }  
};  
var instance1 = new BaseClass();  
instance1.method1 = function(){  
    alert(' Defined directly in the instance method');  
}  
BaseClass.prototype.method1 = function(){  
    alert(' Defined by the prototype instance method ');  
}  
instance1.method1();//Defined directly in the instance method

* 結果追跡テストを実行すると、インスタンス上で直接変数の優先順位が、「this」で定義されている変数の優先順位よりも高いことがわかります。

* そして、「this」で定義された変数は、プロトタイプで定義された変数よりも上位です;

* つまり、インスタンス上で直接定義された変数は変数を上書きします"this" で定義された変数と、prototype で定義された変数、"this" で定義された変数は、prototypetype で定義された変数をオーバーライドします。

[推奨学習:

JavaScript 上級チュートリアル]

以上がJavaScript でインスタンス メソッドを定義できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。