Почему console.log () не показывает унаследованные свойства от Object.create?

Я сталкиваюсь с зависанием при попытке использоватьObject.defineProperty() на базовом объекте. Я хочу наследовать свойства от этого объекта, используяObject.create(), а затем определить дополнительные свойства в производном объекте (которые могут быть унаследованы оттуда). Я должен отметить, что я нацеливаюсь на это на node.js.

Вот'Вот пример:

var Base = {};

Object.defineProperty(Base, 'prop1', {
    enumerable:true,
    get:function(){ return 'prop1 value';}
});

Object.defineProperty(Base, 'prop2', {
    enumerable:true,
    value : 'prop 2 value'
});

Object.defineProperty(Base, 'create', {
    value:function(){
        return Object.create(Base);
    }
});

console.log(Base);

var derived = Base.create();

Object.defineProperty(derived, 'prop3', {
    enumerable:true,
    value:'prop 3 value'
});

console.log(derived);

Который выводит следующее:

{ prop1: [Getter], prop2: 'prop 2 value' }
{ prop3: 'prop 3 value' }

Я думал, что console.log () будет перечислять унаследованные свойства, а также свойствоprop3 что я определил на производном объекте. Казалось бы, он не ищет иерархию прототипов для свойств, определенных таким образом. Это верно?

Я посмотрел на переопределениеtoString() метод для моего объекта, но кажется, что console.log () не вызывает этого.

Как я могу зарегистрировать все свойства, не перечисляя их?Это правильный способ реализации наследования?

РЕДАКТИРОВАТЬ:

Есть ли другая функция в файле node.js? библиотеки, которые будут выполнять работу и регистрировать унаследованные свойства?

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

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