atributo personalizado funciona apenas com element.getAttribute ("atributo"), mas não "element.attribute"

Acabei de notar que, se eu der um atributo personalizado para um elemento html, por exemplo:

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

então eu posso recuperá-lo assim:

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

e ele retornará"custom_attr_text"mas se eu fizer

document.getElementById("my_button").custom_attr;

então retornaundefined!

Eu também notei que com um atributo interno (por exemplovalue ouid) ambos acima funcionam bem! Alguém poderia explicar por que isso está acontecendo?

questionAnswers(1)

yourAnswerToTheQuestion