Я создаю объект с помощью Object.create
, и я хочу добавить к нему свойства.
> var o = Object.create({});
undefined
> Object.defineProperty(o, "foo", {value: 43, enumerable: true});
{foo: 43}
> o
{foo: 43}
> o.foo
43
> for (var i in o) { console.log(i); }
foo
> Object.keys(o)
['foo']
> Object.defineProperty(o, "foo", {value: 43, enumerable: false });
TypeError: Cannot redefine property: bar
Q1) Почему я не могу переопределить свойство?
> o.__proto__
{}
> o.prototype
undefined
Q2) Почему прототип пуст? И почему эти 2 значения отличаются друг от друга, т.е. {}
vs undefined
?