Подтвердить что ты не робот

Почему [объект Object] дважды упоминает "объект"?

[object Object] - это строковое представление объекта JavaScript по умолчанию.

Я бы понял, было ли это всего лишь [Object] или [Object], но почему [object Object]? Почему первое слово является строчным, а второе - прописным? Является ли это частью JSON или JavaScript?

4b9b3361

Ответ 1

Все объекты имеют метод toString, который отображает что-то в формате [object type], где type - тип объекта.

При вызове null вы получаете [object Null], а при вызове объекта вы получаете строку [object Object], потому что она основана на Object constructor (capital "O" ), поэтому он говорит object дважды, это объект типа Object.

MDN

JSON - это облегченный формат обмена данными и на самом деле не имеет ничего общего с JavaScript, кроме имени "Обозначение объекта JavaScript", поскольку он написан как объект JavaScript.

Ответ 2

Я бы понял, было ли это просто [Object] или [object], но почему [object Object]?

Потому что это объект, созданный из базового класса Object.

Из spec:

Возвращает значение String, которое является результатом объединения трех строк "[object", class и "]".


Является ли это частью JSON или JavaScript?

Это не имеет ничего общего с JSON.

Ответ 3

Первый object означает, что тип регистрируемой вещи является объектом. Он также жестко закодирован в спецификации языка здесь.

Второй object обозначает свойство конструктора, например:

Object.prototype.toString.call(""); // [object String]

Алгоритм просто говорит: "Получите свойство [[class]] объекта, а затем верните" [object "+ class + ']'.

Ответ 4

Вы в основном попали в платоновую стену пещеры. Если все является объектом, что такое надмножество объекта? Здесь ответ воплощен в коде, это просто объект.

Следовательно, все объекты являются объектами.

Добро пожаловать в круглость.