JavaScript ma mnóstwo szalonej elastyczności. Postanowiłem go wykorzystać i zmienić funkcję podczas pierwszego połączenia. Czy to źle? To działa tak:Nieprawidłowe, aby funkcja zmieniła odwołanie do zmiennej, z której wywołano?
(function(){
var nextAfter = function(){};
Something.prototype.next = function(){
//do pre-start actions.
this.next = nextAfter;
};
})();
Funkcja ta nazywa się wewnątrz pętli głównej, więc to jest wywoływana wiele razy, ale instancja jest zawsze tylko „niby” do wystąpienia raz.
"potencjalne zagrożenie bezpieczeństwa"? – undefined
Ta funkcja nie zmienia się sama. Prototyp 'Something' nadal będzie miał funkcję' next() ', ale gdy zostanie wywołana, definiuje' next() 'bezpośrednio na obiekcie będącym instancją' Something'. – nnnnnn
@nnnnnn Nigdy bym tego nie przyłapał! Cieszę się, że coś o tym powiedziałeś. W tym momencie myślę, że to, o co pytam, jest inne, takie jak: posiadanie funkcji zmienia odniesienie do zmiennej, z której ją wywołano. – Andrew