なぜObject.getOwnPropertyDescriptor({}, '__proto__')
返信undefined
?なぜObject.getOwnPropertyDescriptor({}、 '__proto__')は未定義を返しますか?
__proto__
はもともと実際にユーザーランドプロパティではなかったのでしょうか?
なぜObject.getOwnPropertyDescriptor({}, '__proto__')
返信undefined
?なぜObject.getOwnPropertyDescriptor({}、 '__proto__')は未定義を返しますか?
__proto__
はもともと実際にユーザーランドプロパティではなかったのでしょうか?
__proto__
は、自分の財産ではありません。これはオブジェクトのプロトタイプ([[Prototype]]
)を取得して設定するために内部的に実装されたゲッターまたはセッターであるObject.prototype
のプロパティです。
< Object.getOwnPropertyDescriptor(Object.prototype, '__proto__')
> Object {enumerable: false, configurable: true, get: function..., set: function...}
__proto__
オブジェクトのprototype
から継承されたプロパティです:
Object.getOwnPropertyNames({}) // prints "[]", no properties
'__proto__' in {} // prints "true", it's inherited from prototype
あなたが直接prototype
から__proto__
記述子を取得することができます。
Object.getOwnPropertyDescriptor(Object.getPrototypeOf({}), '__proto__');
// prints {enumerable: false, ... }