Ich glaube, dass das Function
-Objekt das einzige Exemplar in JavaScript ist. Alle anderen function(){...}
oder var xx=function(){...}
sind die Objekte, die von diesem Function
-Objekt abgeleitet sind. Das ist das Merkmal der prototypenbasierten Sprache. In einer prototypenbasierten Sprache gibt es kein Class
, und einer der Vorteile davon ist, dass das Objekt jederzeit geändert werden kann, beispielsweise kann eine Methode oder eine Eigenschaft hinzugefügt werden. Also denke ich, dass wir ein object
wie eine Schlüssel-Wert-Sammlung behandeln können. Sie können jederzeit Elemente hinzufügen, nachdem Sie es erstellt haben. (Wenn ich falsch liege, bitte korrigieren Sie mich.)
Sagen Sie, Sie haben den folgenden Code:
Function.test=function(){
alert(Function.name);//"Function"
alert(Function.myName);//"fun"
};
Function.name="fun";
Function.myName="fun";
Function.test();
In dem obigen Code möchte ich nur eine Methode test
zum Function
-Objekt hinzufügen. Es gibt keinen Fehler in diesem Code. Aber warum kann Function.name
nicht geändert werden?