2017-02-16 13 views
0

コードアカデミーでは、JavaScriptでオブジェクトを作成する方法が2つあると述べています。オブジェクトプロパティの割り当てで構文エラーが発生する

1.オブジェクト・リテラル表記

var myObject = {  
    key: value,  
    key: value,  
    key: value 
}; 

2.オブジェクトコンストラクタアプローチ

var myObject = new Object(); 

キーは、次にこのよう添加することができる。

myObj["name"] = "Charlie"; 
myObj.name = "Charlie"; //shorthand for the first 

ビーイング作成するように依頼しました3歳bjects、私は同じ値を持つオブジェクトを生成するさまざまな方法を試みたが、上記のテンプレートを使用してエラーが発生しています。私のコードは以下に貼り付けられています:

var object1 = { 
    1: 2, 
    7: 3, 
    4: 5 
}; 

var object2 = new Object(); 
object2['1'] = 2; 
object2['7'] = 3; 
object2['4'] = 5; 

var object3 = new Object(); 
object3.1 = 2; 
object3.7 = 3; 
object3.4 = 5; 

コードアカデミーは私にエラーを与え、正確にどこにあるかを知るためにChromeのコンソールを使いました。 Chromeのコンソールに個別に各オブジェクトの作成を結び、object1object2を作成することができなくobject3エラーを生成する:

var object3 = new Object(); 
object3.'1' = 2; 
object3.'7' = 3; 
object3.'4' = 5; 

Uncaught SyntaxError: Unexpected number

は(文字列に数字のキーを変更)へobject3のコードを変更しますUncaught SyntaxError: Unexpected string

object1の値を生成するためにこのテンプレート/レイアウトを使用してobject3を作成することはできますか?または、キーは決して数値または文字列ではありませんか?文字列ですが、object2の作成に使用したキーの番号ではありません。

+1

プロパティ名「は、ドットを使用して数字で始めることはできません'構文です。ただし、アンダースコア(および$とアルファベット文字)は正当な構文なので、object3._1は機能します。 –

答えて

2

ドット表記を使用する場合は、キーが変数は(文字で始まるか、_と文字のみが含まれ、数字と_)しているのと同じ方法で命名されなければなりません。

キーは、ドット表記法として使用することが有効でない場合、それはこのようブラケット表記を用いて使用することができる:174は、ドット表記のために有効ではないので

obj["key goes here"]; 

、それらをキーとして使用する唯一の方法は次のとおりです。obj["4"] ...

ここにはオブジェクトの基本についてのMDN pageがあります。

例:

これらのキーは、ドット表記のために有効です。

abc; 
_a; 
R2D2; 
_; 
_0; 
a________a; 

THESではありません。

k-ey; 
a b a; 
99; 
k.e.y; 
@@; 
関連する問題