ホームページ > 記事 > ウェブフロントエンド > JavaScript でインスタンス メソッドを定義できますか?
Javascript ではインスタンス メソッドを定義できます。メソッド: 1. JavaScript オブジェクト プロトタイプ参照プロトタイプを使用してインスタンス メソッドを実装します。2. オブジェクト インスタンスに直接メソッドを定義します。3. このポインタを介してインスタンス メソッドを定義します。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。