Ответ 1
Если вы посмотрите на документацию, он говорит:
Консоль знает четыре разных типа сообщений, которые описаны ниже [...]
См. также Консольный API для более информации о различных команды.
Посмотрите на эту страницу показывает в console.log
:
Если объекты регистрируются, они будут написанный не как статический текст, а как интерактивные гиперссылки, которые могут быть нажмите, чтобы проверить объект в Firebug HTML, CSS, Script или DOM Вкладки.
Итак, я думаю, что перед splice
массив все еще остается Array (я знаю, это вид объекта), но после операции вы получаете общий объект, по крайней мере, внутренне. Я знаю, что это слабое объяснение, но Firebug имеет более странное поведение в консоли.
BTW, спецификация ECMAScript не говорит ничего полезного, но мы можем прочитать в разделе о Array.prototype.splice
(§ 15.4.4.12):
Функция
splice
преднамеренно общий; он не требует, чтобы егоthis
value - объект Array. Поэтому его можно перенести на другие виды объектов для использования в качестве метод. Функцияsplice
может быть успешно применена к хосту объект зависит от реализации.