Это артефакт того, как разные среды регистрируют объекты. При переполнении стека фрагменты стека регистрируют перечисляемые свойства в любом месте в цепочке прототипов объекта:
const theProto = { protoProp: 'val' };
const theInstance = Object.create(theProto);
theInstance.instanceProp = 'val';
console.log(theInstance);
Тот же код в узле регистрирует только свойства непосредственно на объекте :
{ instanceProp: 'val' }
И repl.it
запускает код через Node.
Аналогично, с вашим фрагментом, поскольку свойство growl
находится в объекте prototype , когда вы регистрируетесь bBear
, вы увидите growl
в фрагменте стека, но нет, если вы запустите тот же код в Node.
Фактический объект в Javascript один и тот же, независимо от вашей среды - вы не делает ничего плохого.
Ведение журнала не стандартизировано. Это зависит от двигателя.