ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript オブジェクト指向 (ミニマリスト アプローチ)_js オブジェクト指向

JavaScript オブジェクト指向 (ミニマリスト アプローチ)_js オブジェクト指向

WBOY
WBOYオリジナル
2016-05-16 17:51:431240ブラウズ
ミニマリスト アプローチ
オランダのプログラマー、Gabor de Mooij は、Object.create() よりも優れた新しいメソッドを提案し、このメソッドを「ミニマリスト アプローチ」と呼びました。これも私がオススメする方法です。
3. 1 カプセル化
このメソッドは this やプロトタイプを使用せず、コードが非常に簡単にデプロイできるため、おそらく「ミニマリストメソッド」と呼ばれます。
まず第一に、これも「クラス」をシミュレートするためにオブジェクトを使用します。このクラスでは、インスタンスを生成するためのコンストラクター createNew() を定義します。
コードをコピー コードは次のとおりです:

var Cat = {
createNew: function () {
// some code here
}
};

次に、createNew() でインスタンス オブジェクトを定義し、このインスタンス オブジェクトを戻り値として使用します。
コードをコピー コードは次のとおりです:

var Cat = {
createNew: function () {
var cat = {};
cat.name = "大马";
cat.makeSound = function (){ アラート ("ニャーニャー") }; cat;
}
};

使用する場合は、createNew() メソッドを呼び出してインスタンス オブジェクトを取得します。

コードをコピー コードは次のとおりです。
var cat1 = Cat.createNew ();
cat1.makeSound (); // ニャーニャーニャー

このメソッドの利点は、理解しやすく、明確でエレガントな構造を持ち、従来の「オブジェクト」に準拠していることです。 「指向プログラミング」構造を採用しているため、簡単に導入できます。

3. 2 継承
あるクラスに別のクラスを継承させるととても便利です。前者の createNew () メソッド内で後者の createNew () メソッドを呼び出すだけです。
まず、Animal クラスを定義します。

コードをコピー コードは次のとおりです:
var Animal = {
createNew: function () {
var 動物 = {};
animal.sleep = function (){ アラート
}
}; 🎜>

次に、Cat の createNew () メソッドで、Animal の createNew () メソッドを呼び出します。


コードをコピー コードは次のとおりです: var Cat = {
createNew: function () {
var cat = Animal.createNew ();
cat.name = "大毛";
cat.makeSound = function (){ アラート ("ニャーニャー"); >return cat;
}
};


このようにして取得した Cat インスタンスは、Cat クラスと Animal クラスの両方を継承します。



コードをコピー
コードは次のとおりです。 var cat1 = Cat.createNew (); cat1.sleep (); //


3. 3 プライベートプロパティとプライベートメソッド
内で、 cat オブジェクトでは定義されていません。メソッドとプロパティはプライベートです。


コードをコピー
コードは次のとおりです: var Cat = { createNew: function () {
var cat = {};
var sound = "ニャーニャー";
cat.makeSound = function (){ アラート (サウンド) }; >}
};


上記の例の内部変数 sound は外部から読み取ることができず、cat の public メソッド makeSound () を通じてのみ読み取ることができます。



コードをコピー

3. 4 データ共有

場合によっては、すべてのインスタンス オブジェクトが読み書きできるようにする必要があります。同じ内部データです。このとき、クラスオブジェクト内および createNew() メソッドの外に内部データをカプセル化するだけです。


コードをコピー

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

var Cat = {
sound : "ニャーニャー",
createNew: function (){
var cat = {};
cat.makeSound = function (){ (Cat.sound) };
cat.changeSound = function (x){

}; 🎜> 次に、2 つのインスタンス オブジェクトを生成します:



コードをコピーします
コードは次のとおりです: var cat1 = Cat.createNew (); var cat2 = Cat.createNew ();
cat1.makeSound (); // このとき、インスタンス オブジェクトがある場合、共有データが変更されると、別のインスタンス オブジェクトも影響を受けます。




コードをコピーします


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