オブジェクトは、それぞれが プリミティブはデータ型で、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");