Quelle est la différence entre " new Object()` et littéral d'objet de la notation?

Quelle est la différence entre ce constructeur de base de la syntaxe pour la création d'un objet:

person = new Object()

...et cette syntaxe littérale:

person = {
    property1 : "Hello"
};

Il semble que les deux font la même chose, bien que JSLint préfère vous utilisez littéral d'objet de notation.

Lequel est le mieux et pourquoi?

  • Tout de même: a = new Object, a = new Object(), a = {}, littérale est beaucoup plus simple et quelques tests, j'ai couru il y a un moment dire que c'est plus rapide, les nouveaux compilateurs peuvent avoir causé ma déclaration fausse. Même s'applique à littérale des tableaux
  • J'espère que vous déclarez vos variables avec la var mot-clé dans le code de votre application pour éviter de polluer l'espace de noms global et la création de la nécessité de regarder au-delà de l'enregistrement en cours dans la pile pour les variables.
  • hey man, bon conseil. Mais que voulez-vous dire par "l'enregistrement en cours dans la pile"? Si je suis absent quelque chose que j'aimerais savoir c'
  • Fondamentalement, à tout moment pendant l'exécution d'un programme, il y a une pile de dossiers ou de blocs. Chaque enregistrement a une liste de variables qui ont été créés dans le champ d'application. En JavaScript, si une expression contient une variable et l'interprète ne peut pas le trouver dans la pile d'enregistrement pour cette portée, il va continuer jusqu'à l'enregistrement suivant jusqu'à ce qu'il trouve la variable. Plus d'infos davidshariff.com/blog/...
  • En évitant de JSLint est la première étape pour devenir un bon développeur. À l'aide de new est une convention qui transcende l'inutile tatillon d'une médiocre de la langue. Utilisation new parce que sa signification est claire. Dans 99,9% des cas, les gains de performance ne sont pas pertinents.
  • médiocre de la langue selon qui?

InformationsquelleAutor ectype | 2011-01-04