メッセージ
SyntaxError: missing : after property id
エラータイプ
何がうまくいかなかったのか?
オブジェクト初期化子構文でオブジェクトを生成する場合、オブジェクトのプロパティのキーと値をコロン (:
) で区切ります。
var obj = { propertyKey: 'value' };
例
コロン vs. 代入記号
この方法で代入記号をオブジェクト初期化子構文として使用できないため、このコードは失敗します。
var obj = { propertyKey = 'value' };
// SyntaxError: missing : after property id
正しくはコロンを使用するか、オブジェクトを生成した後に角括弧を使用して新しいプロパティを割り当てます。
var obj = { propertyKey: 'value' };
// または
var obj = { };
obj['propertyKey'] = 'value';
空のプロパティ
このような方法で空のプロパティを生成できません:
var obj = { propertyKey; };
// SyntaxError: missing : after property id
値がないプロパティを定義する必要がある場合、値として null
を使用します。
var obj = { propertyKey: null };
計算されたプロパティ
式からプロパティキーを生成する場合、角括弧を使用します。そうしなければ、プロパティ名は計算できません:
var obj = { 'b'+'ar': 'foo' };
// SyntaxError: missing : after property id
式を括弧 []
に入れます:
var obj = { ['b'+'ar']: 'foo' };