2009-10-28 7 views
0

Quelles sont les différences entre ces deux codes en JavaScript?Objets JavaScript

var obj = new Object(); 
obj.X = 10; 
obj.Y = 20; 

Et,

var obj = {X:10, Y:20}; 
+3

Une autre caractéristique importante du premier cas est que le constructeur 'Object' est appelé, alors que dans le second cas ce n'est pas le cas. Au moins, c'est le comportement de Firefox. – opello

+0

@opello: Vraiment? Comment avez-vous testé cela? –

+0

Techniquement, le constructeur Object est toujours appelé dans le second cas, mais il utilisera toujours la version intégrée. Si vous écrivez votre propre fonction Object, elle sera appelée dans le premier cas, mais pas dans le second. –

Répondre

5

Rien du tout. Juste la syntaxe.

Vous pouvez également utiliser:

var obj = new Object(); 
obj["X"] = 10; 
obj["Y"] = 20; 
4

Le second est un raccourci pour la première. Fonctionnellement, ils sont identiques.

+1

Pas nécessairement un raccourci, mais une syntaxe différente. Le second s'appelle JavaScript Object Notation, ou JSON. – opello

+5

Non, le second n'est pas JSON. JSON serait {"X": 10, "Y": 20}. La citation est importante. –

+0

Ah désolé, vous avez en effet raison. Hm, comment s'appellerait-il alors? Est-ce juste une 'syntaxe d'objet raccourci?' – opello

0

Rien de vraiment. Eh bien, ce n'est pas tout à fait vrai, mais les différences sont beaucoup trop mineures pour être mentionnées.

1

objet le format littéral {} a été introduit avec JavaScript 1.2, ainsi que le format littéral tableau []. La variante la plus lisible {X:10, Y:20} ne fonctionnera donc pas dans Netscape 3! (Oh non!)