@MishaXXL

Почему корень в JS это null, а не Object.prototype?

Почему корень наследования в JS это null, а не Object.prototype?
Ведь все объекты наследуются от Object.prototype, для чего потребовалось сделать наследование Object.prototype от null?
В этой цепочке логики и скрывается почему null тип это объект, а не тип null?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 2
Mike_Ro
@Mike_Ro Куратор тега JavaScript
Python, JS, WordPress, SEO, Bots, Adversting
Комментировать
AlexanderK-A
@AlexanderK-A
UTC+10
А вообще ваш вопрос немного интереснее, чем кажется на первый взгляд).

Спецификация ES описывает и значение null, и тип Null:


null & Null
4.4.15 null value
primitive value that represents the intentional absence of any object value

4.4.16 Null type
type whose sole value is the null value


То есть в логике спецификации вывод

console.log(Object.getPrototypeOf(Object.prototype));
// выводит null


Следует читать не как "прототип объекта Object.prototype - это/равен null", а "у объекта Object.prototype прототип отсутствует (намеренно не задан)".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
15 июн. 2024, в 19:19
10000 руб./за проект
15 июн. 2024, в 17:26
50000 руб./за проект