3 Stimmen

Funktionsobjekt in JavaScript

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?

1voto

Joseph Punkte 113912

Eine Seite von MDN besagt, dass der Name der Funktion nicht geändert werden kann, da er schreibgeschützt ist.

1voto

Vadim Punkte 8681

Zunächst einmal ist diese Eigenschaft nicht standardisiert. Das bedeutet, dass verschiedene Browser sie unterschiedlich behandeln können. Zweitens, gemäß MDN ist sie schreibgeschützt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X