Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Duda "autenticable"

Buenas noches, mi duda es porque** "autenticable"** va entre comillas como si fuera un string?

if(**"autenticable"** in usuario && usuario.autenticable instanceof Function){
            return usuario.autenticable(clave);
        } else {
            return false;
        }
1 respuesta
solución!

Hola Gustavo.

Va como un string porque el operador "in" para evaluar clase recibe es el nombre del método. Por eso pasamos entre comillas ese valor, no recibe el método como tal sino el nombre.

De la forma que evaluamos allí se hace una doble verificación, porque el "in" puede retornar tanto para métodos como para propiedades, por eso se hace la segunda verificación de ver si es una instancia de función, pero en términos resumidos, el operador in evalua a partir del nombre del método y no de la instancia del método.

Atte Leonardo