JavaScript hat alle Mengen an verrückter Flexibilität. Ich habe beschlossen, es zu nutzen und eine Funktion beim ersten Anruf ändern zu lassen. Ist das eine schlechte Sache zu tun? Es funktioniert wie folgt:Falsche Funktion, um die Variablenreferenz zu ändern, von der sie aufgerufen wurde?
(function(){
var nextAfter = function(){};
Something.prototype.next = function(){
//do pre-start actions.
this.next = nextAfter;
};
})();
Diese Funktion innerhalb einer Hauptschleife aufgerufen wird, so wird es viele Male, aber die Instanz ist immer nur „angeblich“ instanziiert werden einmal aufgerufen.
"potenzielle Sicherheitsbedrohung"? – undefined
Diese Funktion ändert sich nicht. Der 'Something'-Prototyp wird immer noch eine' next() '-Funktion haben, aber wenn er aufgerufen wird, definiert er ein' next() 'direkt auf dem Objekt, das eine Instanz von' Something' ist. – nnnnnn
@nnnnnn Ich hätte das nie gefangen! Ich bin froh, dass du etwas dazu gesagt hast. An dieser Stelle denke ich, dass das, was ich frage, anders ist, wie zum Beispiel: Eine Funktion zu haben, ändert die Referenz der Variablen, von der sie aufgerufen wurde. – Andrew