Confusão Object.getPrototypeOf ()

Como Object.getPrototypeOf (obj) funciona?

Como por definição, Object.getPrototypeOf (obj) deve retornar a propriedade prototype de um Object ou, de outro modo, é o mesmo que obj.constructor.prototype.

Objetos criados com new usam o valor da propriedade prototype de sua função construtora como seu protótipo.

Vamos dar um exemplo:

>element = document.getElementById("test")

>a = Object.getPrototypeOf(element)
HTMLDivElement

Digamos que HTMLDivElement seja o protótipo do elemento.

>a.constructor.prototype
HTMLDivElement

portanto, a.constructor.prototype é HTMLDivElement, portanto, Object.getPrototypeOf (a) deve retornar HTMLDivElement, mas retorna HTMLElement. Estou totalmente confuso com a definição de getPrototypeOf ().

>b = Object.getPrototypeOf(a)

HTMLElement ----> por quê? a.constructor.prototype é HTMLDivElement

Na verdade está voltandoproto propriedade do protótipo, não é errado como por definição de getPrototypeOf ()?

>a.constructor.prototype.__proto__
 HTMLElement