Uso una función abreviada para evitar tener que escribir let x = document.getElementById('myId'); cada vez que quiero una referencia a un elemento en la página:
function element(id) { return document.getElementById(id); }Ahora puedo usar el mucho más simple:
let x = element("id");Hoy, por accidente, hice esto:
let x = element("id").value;Y funcionó, y en realidad contenía el valor del elemento HTML "id".
Pero mi función element() no proporciona una propiedad .value . Simplemente devuelve una referencia a un elemento.
Debería haber causado un error de algún tipo. ¿Por qué no? ¿O por qué funcionó?
Ha accedido a una propiedad .value del resultado de una función, no de una función en sí.
element.value // undefined, gets value property of a function element(id).value // gets an element by id and returns it's value