Почему `Object.prototype.toString` всегда возвращает` [object *] `?

Если вы позвонитеObject.prototype.toString.call(anything) результат всегда[object Something], гдеSomething может быть одной из нескольких вещей. Мой вопрос, почему это "объект» часть там? Кажется излишним всегда иметь его там. Это нене могу сказать вам ничего об аргументе, который был передан.

Object.prototype.toString.call(null);
=> [object Null]

Object.prototype.toString.call(undefined);
=> [object Undefined]

посколькуnull а такжеundefined Арен»т объектов (и не удаетсяCheckObjectCoercible) "объект» часть действительно, действительно кажется бессмысленной.

Я должен думать, что изначально была какая-то причина, по которойобъект» часть была помещена туда, даже если с тех пор причина была потеряна, и этосейчас сохранились только по историческим причинам.

Может ли кто-нибудь помочь пролить свет на это?

Чтобы было ясно, я уже знаю, какObject.prototype.toString может быть использован для получения[[Class]] (тип) объекта. Мой вопрос касается причины формата возвращаемой строки, а именно: "объект» часть в начале. Я хочу знать, была ли когда-либо причина для этой части или есть ли возможная будущая причина для этой части. Может быть, в будущем это может вернуть что-то другое, чем "объект»? Можно ли ожидать, что он всегда вернется?объект»? Если так, то почему это даже возвращает это? Кто хочет, чтобы функция всегда возвращала одно и то же, независимо от того, какой ввод?

Ответы на вопрос(3)

Ваш ответ на вопрос