1

javascriptでオブジェクトを宣言する最良の方法は何ですか?

これです

var Class = function(){};

Class.prototype.print = function(){
    console.log('hello world');
};

またはこれ

var Class_2 = {};

Class_2.print = function(){
    console.log('hello world');
};

その場合、ある方法を別の方法よりも使用する必要がありますか?

4

2 に答える 2

4

クラスを作成するか、単一のオブジェクトを作成するかによって異なります。

JavaScript OOP モデルは、クラスではなくプロトタイプに基づいています。そのため、プロパティとメソッドをクラス (そのクラスのすべての「インスタンス」がそのプロパティまたはメソッドを持つことを意味します) だけでなく、特定のオブジェクトにも追加できます。つまり、クラス C のオブジェクト A と B のインスタンスを持つことができ、A だけが持ち、B には持たない特別な動作を A に追加することができます... JavaScript には実際にはクラスがないため、これはすべて奇妙に聞こえます。プロトタイプのみがあり、プロトタイプでできることを使用して、多かれ少なかれクラスを「シミュレート」できます。JavaScript では、オブジェクト A が他のオブジェクト B の「インスタンス」である場合、実際には B が A のプロトタイプであると言っているのです。つまり、B との違いに基づいて A を定義するということです。

現実の世界では、羊との最初の出会いは、大きくて白い毛むくじゃらの羊であるドリーとの出会いでした。つまり、Dolly.color = white; と言います。Dolly.hair = a_lot; Dolly.size = 大きい; それから、誰かが羊の色は何ですかとあなたに尋ねます。あなたはドリーしか知らないので、すべての羊はドーリーとまったく同じだと思い、白と答えます...そして別の羊、ピートに会いましたが、これは黒くて大きくて、ハリー。つまり、ピートは黒いことを除いて、ピートはドリーとまったく同じであると言います.. したがって、Pete.Prototype = Dolly (つまり、Dolly とまったく同じであることを意味します) としますが、色を上書きして次のように言います。違います: Pete.color = black;

JavaScript でクラスを「シミュレート」するには、すべての羊の「デフォルト」品質をすべて備えた Sheep という「理想的な」羊を定義し、それを他のすべての羊のプロトタイプとして使用します。

JavaScript でクラスを定義するには、さまざまな方法があります。ただし、実際にクラスを定義するのではなく、プロトタイプを作成し、クラスをシミュレートしていることを常に覚えておく必要があります。何が起こっているのか、そしてそれを最大限に活用する方法を本当に理解したい場合は、プロトタイプについて学んでみてください。

于 2012-07-13T23:56:04.793 に答える
1

それはあなたの目的によって異なります。

最初のものはインスタンス化できます

var obj = new Class('...');

2つ目は、名前空間を利用するために使用できます

于 2012-07-13T23:42:32.690 に答える