Vous ne pouvez vraiment pas faire cela parce qu'il est une erreur de syntaxe
function a = function() {};
Je suppose que vous voulez simplement dire:
function a() {}
Quoi qu'il en soit . La raison pour laquelle vous ne pouvez pas extraire une propriété d'un nombre est que ce n'est pas un objet réel.
a = 20;
a.foo = 30; // this works
alert(a.foo); // this alerts nothing
Croyez-le ou non, la même chose pour les chaînes:
a = "ohai";
a.foo = 30; // this works
alert(a.foo); // this alerts nothing
Cependant si elle est objet String, il fonctionne comme prévu:
a = new String("ohai");
a.foo = 30; // this works
alert(a.foo); // this alerts 30
Ou si elle est un objet Numéro . Tu obtiens le point.
Les littéraux de chaîne et de nombre ne sont pas des objets en Javascript. C'est la raison.
il y a des tableaux trop ... ils ont des prototypes natifs d'objets (notez qu'un tableau retourne un typeof comme un objet, mais si vous vérifiez son constructeur vous verrez qu'il est en fait 'Array') . –
@Peter: Toujours, les tableaux sont des objets. La norme ECMA définit "Objets tableau", "Objets fonction", ... et "Objets objet" – user123444555621
@Pumbaa - Merci. Cela explique le 'typeof'. –