オブジェクトは、それぞれが
プリミティブはデータ型で、1 つの重要な
違い: プリミティブとは異なり、オブジェクトは可変です。オブジェクトにデータを格納できる
変数などの識別子に関連付けられているが、object
データは保持される
種類に関係ありません。
プリミティブを除き、すべての JavaScript 値はオブジェクトです。 プリミティブ リテラルは、 プロトタイプ型継承は JavaScript は実質的にオブジェクトで構成されているとよく言われます。
オブジェクト リテラルは、ゼロ個以上の Key-Value を中かっこで囲むペアです。 「プロパティ」と呼ばれる任意の JavaScript 値を含めることができます。
{
"myProperty" : true
}
プロパティ キーには、任意の記号または 文字列。ID を割り当てるときと同じ プロパティキーとして使用される文字列は予測可能で、 説明:
let carAttributes = {
"color" : "red"
};
carAttributes
> Object { color: "red" }
プロパティキーには単一('
)または二重引用符("
)の文字列リテラルが必要です。
テンプレート リテラル:
let carAttributes = {
`keyString` : false
};
> Uncaught SyntaxError: expected property name, got template literal
プロパティ値には任意のデータ型を使用できます。オブジェクトのプロパティ自体は、 独自のプロパティを持つオブジェクトを格納:
let myObject = {
'key' : {
'subkey' : true,
'othersubkey' : false
}
};
myObject;
> Object { key: Object { subkey: true, othersubkey: false } }
プロパティの値が関数の場合、そのプロパティは「メソッド」と呼ばれます。
const myObject = {
"myProperty" : true,
myMethod() {
console.log( "This is a method." );
}
}
myObject.myProperty;
> true
myObject.myMethod();
> "This is a method."
new
キーワードを使用してオブジェクトを作成することもできます。
let myObject = new Object();
上の例では、新しく作成されたオブジェクト リテラルに
使用できます。他のデータ型と同様に、使用可能な
オブジェクトが想定されている場所に識別子のないオブジェクト。ただし、
オブジェクト リテラルでは、混乱を招く可能性があるコンテキストで括弧が必要
この 2 つは中かっこの構文({}
)を共有していることを前提としています。
変数の初期化では不要です。
{ "value" : 2 }
> Uncaught SyntaxError: unexpected token: ':'
({ "value" : 2 })
> Object { value: 2 }
let valObj = { "value" : 2 };
valObj;
> Object { value: 2 }
プリミティブとは異なり、作成の結果に意味のある違いは
オブジェクト リテラルを作成し、new Object()
を使用して作成する必要があります。これは、
いずれの場合も、
Object
プロトタイプ。ただし、この 2 つのデータには実際的な違いが 1 つあります。
学びました。
new
キーワードは、後でデータを格納する空のオブジェクトを定義する必要があります。
let myObject = new Object();
myObject.booleanValue = true;
myObject.stringValue = "My string.";
オブジェクト リテラルには、作成時にデータを入力できます。
let myObject = {
'booleanValue' : true,
'stringValue' : "My string."
};
実用性はほとんどありませんが、new Object()
を使用してプリミティブに変換できます。
などのように、データ値をそれぞれの型のオブジェクトに
new
キーワードとコンストラクタ
使用します。たとえば、次の要素は機能的に同等です。
new Number( 10 )
:
let myObject = new Object( 10 );
myObject;
> Number { 10 }
null
と undefined
の値は、機能的に同じ空のオブジェクトになる
引数を指定せずに new Object()
を呼び出す場合と同じです。
オブジェクト リテラルを引数として new Object()
に渡すと、そのオブジェクトが渡されます。
そのまま使用します。
let myObject = new Object( { myValue : 10 } );
myObject;
> Object { myValue: 10 }
プリミティブ値にコンストラクタを使用する場合と同様に、オブジェクトにはコンストラクタを使用します。 オブジェクト リテラル表記を使用するメリットはほとんどありません。作成時や 空のオブジェクトには後で値が代入されますが、デベロッパーは一般的に わかりやすくするためにリテラル表記を使用します。
理解度をチェックする
オブジェクトのプロパティの設定には、どのような表記法を使用できますか。
値を取得するための正しい構文は次のうちどれですか。
/myProp
myObj["myProp"];
myObj("myProp");
myObj{"myProp"};