@garcia_romero.y, gracias por animarte a preguntar por acá 

La respuesta corta sería sí. De hecho, al imprimir [object Object]
, lo que está pasando es que la función cipher.createCipherWithOffset
está retornando un objeto, y JavaScript lo está convirtiendo a un string para poder insertarlo en en el innerHTML
del nodo result
. El problema en esta caso es que el valor de retorno de cipher.createCipherWithOffset
debería ser de tipo string
y no object
.
Como referencia, todos los objetos resultan en [object Object]
al convertirlos a string
, a menos de que el objeto provea un método toString()
, que en caso de que exista será invocado a la hora de convertir el objeto a un string
.
const a = { foo: 'bar' };
console.log(`${a}`); // => [object Object]
console.log(a.toString()); // => [object Object]
const b = {
foo: 'bar',
toString: function () {
return `foo: ${this.foo}`;
}
};
console.log(`${b}`); // => 'foo: bar'
Espero que sea de ayuda 