Почему у Object прототипом является функция?

На сколько я понимаю, у js ниже по цепочке прототипов, после Object уже ничего нет. Однако, если у Object посмотреть прототип через метод getPrototypeOf, то нам вернет ƒ () { [native code] }. Получается в js у Object протоип это функция?

Как это понять?

console.log(Object.getPrototypeOf(Object)); // ƒ () { [native code]  }


Ответы (1 шт):

Автор решения: Grundy
typeof Object === 'function'

Вполне логично, что у функции, прототипом является функция.

Чтобы получить null нужно подниматься выше по цепоче:

console.log(Object.getPrototypeOf(Object))
console.log(Object.getPrototypeOf(Object.getPrototypeOf(Object)))
console.log(Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Object))))

Также можно отметить, что прототипом объектов является Object.prototype, а не Object, и если брать прототип именно этого объекта получается null как и указано.

console.log(Object.prototype)
console.log(Object.getPrototypeOf(Object.prototype))

→ Ссылка