Digamos que tengo una función como esta:
function foo(){ return () => { return "bar" } } foo()() // => "bar"¿Hay alguna forma de que esto devuelva algo que no sea una función sin el uso de un parámetro?
foo()() // => "bar" foo() // => "foo"No. Si el valor devuelto debe poder llamarse más tarde, entonces tiene que ser una función, sin excepciones.
Sin embargo, podría poner una propiedad en la función.
function foo(){ return Object.assign( () => { return "bar" }, { prop: 'bar' } ); } console.log(foo()()); console.log(foo().prop);O devolver tanto una función como otra cosa.
function foo(){ return [ () => { return "bar" }, 'bar' ]; } const [fn, val] = foo(); console.log(fn()); console.log(val);