2017-12-11 4 views
-2

:良い部品、 第3章では、JavaScriptでJavaScriptを:良い部品:クラスフリーオブジェクトJavaScriptで

オブジェクトがクラスの無されるオブジェクト。 新しいプロパティの名前またはプロパティの値には制約がありません。

声明

新しいプロパティの名前には何の制約

はありませんなぜそれがクラスの無定義の一部ですか?言語がクラスフリーであるかクラスフリーでないかにかかわらず、すべてのプログラミング言語に共通するのではないか?

私は、クラスフリーのオブジェクトには意味があることを理解しています。

またはプロパティの値に基づいています。

+2

ので、あなたの質問は何ですか? –

+0

回答:1)OK ... 2)多分... 3)良い。細部の不足で類似点を見ますか? – charlietfl

+0

@charlietfl:質問を修正しました。今は明らかかもしれません。 – InQusitive

答えて

1

多くのプログラミング言語では、オブジェクトは特定のクラスのインスタンスです。これらのプロパティのプロパティとタイプは、クラスを定義するコードで定義されています。これらのクラスのインスタンスであるオブジェクトは、そのクラスで定義されたプロパティ名に対して、定義された型の値、またはnullを持つことを信頼できます。オブジェクトに新しいプロパティを追加するだけでは、プロパティを特定のタイプの値に設定することはできません。これらの言語でクラスを拡張することでこれを回避することはできますが、追加クラスを作成する必要があります。 PHP、C#またはJavaでは、色を設定および取得するpublicプロパティを持つCar型のオブジェクトを作成する場合は、クラスを作成する必要があります。

JavaScriptでは、任意の名前と値の任意のオブジェクトにいつでも新しいプロパティを追加できます。 ではなくを作成してクラスを作成し、そのクラスのインスタンスであるオブジェクトを作成する必要があります。

// object notation 
 
var myCar = new Object(); 
 
myCar.color = 'red'; 
 
// JSON notation 
 
var myOtherCar = { color: 'red' }; 
 
console.log('myOtherCar.color: ' + myOtherCar.color); 
 
// see how we initialized the value as a string and then changed it to an array of ints? 
 
myOtherCar.color = [1,2,3,4]; 
 
console.log('myOtherCar.color: ' + myOtherCar.color); 
 
// see how we created a new property that wasn't declared in a class structure? 
 
myOtherCar.gasTank = .5; 
 
console.log('myOtherCar.gasTank: ' + myOtherCar.gasTank); 
 
// Is the gas tank half full or half empty?

関連する問題