ES6 permite ampliar objetos especiales. Entonces es posible heredar de la función. Dicho objeto se puede llamar como una función, pero ¿cómo puedo implementar la lógica para dicha llamada?
class Smth extends Function {
constructor (x) {
// What should be done here
super();
}
}
(new Smth(256))() // to get 256 at this call?
Cualquier método de clase obtiene referencia a la instancia de clase a través de this. Pero cuando se llama como función, se thisrefiere a window. ¿Cómo puedo obtener la referencia a la instancia de la clase cuando se la llama como función?
super(x)(es decir, pasarlo a Function)? Sin Functionembargo, no estoy seguro de si realmente se puede extender.
Error, entre otros.
Functiones simplemente un constructor de funciones. La implementación de la función debe pasarse al constructor. Si no desea Smthaceptar una implementación, debe proporcionarla en el constructor, es decir super('function implementation here').
Functionconstructor (tiempo de ejecución) que es muy diferente de una expresión de función (sintaxis).