2010-10-15 4 views
2

Je reçois l'erreur "SyntaxError: Jeton inattendu par défaut" lors de l'obtention ou de la définition de l'attribut "default" sur un objet dans Chrome (+ Opera).Jeton inattendu par défaut dans Chrome avec ({}). Défaut

({}).default 

Quelqu'un peut-il expliquer pourquoi cela se produit?

upd: tout le monde, plz, remarquez que cela n'a pas de sens pour FF donc pendant le test, vous pouvez manquer ce bug.

Répondre

8

default est un mot clé en JavaScript (pour l'instruction switch).

En utilisant des mots réservés dans la propriété dot accesseurs est admis dans ECMAScript Cinquième édition (plus précisément: la syntaxe de la propriété accesseur dot est MemberExpression . IdentifierName [section 12.2.1], et IdentifierName, à la différence Identifier, peut être une ReservedWord [section 7.6]), mais pas dans ECMAScript Third Edition (où c'est MemberExpression . Identifier). La troisième édition est actuellement la base de référence de tous les navigateurs.

Pour une utilisation de sécurité [] accès à la propriété:

({})['default']= ...; 

ou évitez d'utiliser des mots-clés comme noms de propriétés.