2011-12-14 7 views
0

こんにちはこれは可能ですか?実行時にオブジェクトを展開するJavascript?

var settings = { 
    name : 'bilbo', 
    age : 63 
} 

実行時に別のプロパティを動的に追加できるのですか?

var settings = { 
    name : 'bilbo', 
    age : 63, 
    eyecolor : 'blue' 
} 
+2

これはJavaScriptオブジェクトではなく、JSONオブジェクトです。 [MDN - オブジェクトを使った作業](https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects)を見てください。 –

+0

これはオブジェクトリテラルです。 JSONオブジェクトのようなものはありません。 –

+0

JSON = javascriptオブジェクト表記。 JSON *オブジェクト*はありません。オブジェクトに解析できるJSON *文字列*しかありません。 –

答えて

3

単純に新しいプロパティを追加するには、ドット表記を使用します。

var settings = { 
    name : 'bilbo', 
    age : 63 
} 

settings.eyecolor = 'blue'; 

// or: settings['eyecolor'] = 'blue'; 
// both of the above will do the same thing: 
// add a property to your object 

console.log(settings); 
/* Logs: 
{ 
    name : 'bilbo', 
    age : 63, 
    eyecolor: 'blue' 
} 
*/ 

P.S.これは、通常のJavaScriptオブジェクトリテラルです。 JSONとは何の関係もありません。

JSONは、JavaScriptコードのように見える文字列としてオブジェクト/配列を表現する単なる手段です。

2

シンプル:

settings.eyecolor = 'blue'; 

または

settings['eyecolor'] = 'blue'; 

いずれかの実行時にオブジェクトを自分の設定にeyecolorフィールドを追加します。

var settings = { 
    name : 'bilbo', 
    age : 63 
}; 
settings.eyecolor = 'blue'; // can be run anywhere once settings has been defined 
console.log(settings.name, settings.age, settings.eyecolor); // "biblo" 63 "blue" 
1

"JSON"オブジェクトは通常のJavaScriptオブジェクトです。あなたは、次のことが可能です。

settings.eyecolor = 'blue'; 

または

settings['eyecolor'] = 'blue'; 
+1

いいえ、JSONはJavaScriptではありません! –

+1

@FelixKling JSONがJavaScriptであると書いたのですか?彼が話している "JSON"オブジェクトは、通常のJavaScriptオブジェクトです。私は明確ではなかったと思う:)。 – kubetz

+0

ええ、さて、私はそれを見ることができます:) –

0

はい、あなたは、単にすることができます。

settings["eyecolor"] = "blue"; 

これは、再シリアル化された文字列に表示されます。

0

はい

var settings = { 
    name : 'bilbo', 
    age : 63 
} 

settings.eyecolor = 'blue'; 

これはそれを行います。

1

はい、あなたはこのようにそれをコーディングすることができます:

settings.eyecolor = "blue";