el atributo personalizado funciona solo con element.getAttribute ("atributo") pero no con "element.attribute"

Acabo de darme cuenta de que si le doy un atributo personalizado a un elemento html, por ejemplo:

<input type="button" id="my_button" custom_attr="custom_attr_text" value="value_text" />

entonces puedo recuperarlo así:

document.getElementById("my_button").getAttribute("custom_attr");

y volverá"custom_attr_text", pero si lo hago

document.getElementById("my_button").custom_attr;

entonces vuelveundefined!

También noté que con un atributo incorporado (por ejemplo,value oid) ¡ambas cosas de arriba funcionan bien! ¿Podría alguien explicar por qué está sucediendo esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta