Вы можете подумать, что регистрация Date
вызывает функцию toString
объекта Date
, поэтому вы можете просто переопределить ее, но это не обязательно так. Некоторые реализации будут давать вам вывод, похожий на toISOString
вместо toString
. Нигде в спецификации ECMAScript он не определяет, как console.log
должен вести себя. Даже в стандарте консоли WhatWG в нем не описывается, как регистрировать Date
объекты - так что вы находитесь в зависимости от реализации.
Таким образом, вместо переопределения функции в прототипе Date
, вам придется переопределить функцию console.log
, проверить, передан ли ей аргумент Date
, и если поэтому вместо этого преобразуйте его в строку, а затем передайте ее исходной функции console.log
. Я оставлю это на ваше усмотрение (или кому-то еще) для реализации.
Или просто не забудьте позвонить .toString()
, как показал ChuongTran в своем ответе.