ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript コンストラクター オブジェクト指向の基礎知識_js オブジェクト指向

JavaScript コンストラクター オブジェクト指向の基礎知識_js オブジェクト指向

WBOY
WBOYオリジナル
2016-05-16 18:25:351200ブラウズ
コードをコピー コードは次のとおりです:

function A(x)
{
this.x = x;
}
var obj = new A(5);

このコードは非常に単純ですが、私たちにとって重要なのは、C# でクラスのインスタンスを使用するときと同じように、Obj に属性 x が割り当てられたという非常に驚くべき結果に達しました。では、この物件はどのようにして生まれたのでしょうか?

重要なステートメント: this.x=x。この文は属性を宣言して割り当てます。ここで、これは何ですか?と必ず尋ねます。 this.x を使用して属性を宣言したり割り当てたりできるのはなぜですか?

実際、これはインスタンス化したばかりの obj を表しており、obj を使用してコンストラクター A のプロパティ、メソッドなどを呼び出すことと同じです。

では、コンストラクターでメソッドを定義するにはどうすればよいでしょうか?


コードをコピー コードは次のとおりです。
function A(x,y )
{
this.x = x;
this.y = y;
A.prototype.FunX = function(){alert(x)}; = function( ){alert(y)};
}
var obj = new A(5,10);
alert(obj.y); 🎜>obj . Fun 🎜>

コードをコピーします


コードは次のとおりです:

A.prototype.FunX = function(){alert (x)};
A.prototype.FunY = function(){alert(y)};
コードをコピー


コードは次のとおりです。


function A(x,y )
{
このコードを実行すると、ポップアップの結果が以前と同じであることがわかります。どちらのメソッドも外部で定義されており、FunY メソッドはインスタンス化後に定義されています。ここで何か見えますか?明らかに、obj.FunY() ステートメントを使用すると、コードは obj を再構築してからこのメソッドを実行します。




コードをコピーします


コードは次のとおりです。


obj.FunY(); A.prototype .FunY = function(){alert("10")};

明らかに、FunY() はメソッドを実行しません。

次回は、JavaScript コンストラクターとプロトタイプについて説明します。質問や間違いがあれば、遠慮なく修正して議論してください。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。