ES6 umożliwia rozszerzenie specjalnych obiektów. Więc możliwe jest dziedziczenie z funkcji. Taki obiekt można wywołać jako funkcję, ale jak mogę zaimplementować logikę dla takiego wywołania?
class Smth extends Function {
constructor (x) {
// What should be done here
super();
}
}
(new Smth(256))() // to get 256 at this call?
Każda metoda klasy otrzymuje odwołanie do instancji klasy za pośrednictwem this. Ale kiedy jest wywoływany jako funkcja, thisodnosi się do window. Jak mogę uzyskać odwołanie do instancji klasy, gdy jest wywoływana jako funkcja?
PS: To samo pytanie po rosyjsku.
super(x)(tj. Przekaż to dalej Function)? Nie jestem pewien, czy Functionrzeczywiście można go przedłużyć.
Errorm.in.
Functionjest to po prostu konstruktor funkcji. Implementację funkcji należy przekazać konstruktorowi. Jeśli nie chcesz Smthakceptować implementacji, musisz podać ją w konstruktorze, tj super('function implementation here').
Functionkonstruktora (środowiska wykonawczego), który bardzo różni się od wyrażenia funkcyjnego (składni).