是__proto__是对象实例的属性还是其Object.prototype的属性

时间:2020-07-02 06:28:34

标签: javascript prototype

我试图了解原型,并因此获得清晰的了解。我不明白的是, 是__proto__object instance的属性,还是Object.prototype的属性,我们可以从对象实例中使用它。我知道原型和原型链的其他方面,并且只想知道谁真正赢得了__proto__?它的所有者是每个object instanceObject constructor(我们必须称其为新的)原型吗?

1 个答案:

答案 0 :(得分:1)

来自MDN

__proto__的{​​{1}}属性是访问器属性(getter函数和setter函数),它公开对象的内部[[Prototype]](对象或null),通过它被访问。

Object.prototype

const obj = {}; console.log(obj.hasOwnProperty('__proto__')); // false console.log(Object.prototype.hasOwnProperty('__proto__')); // true已过时。最好使用:

  1. create-使用现有对象作为原型创建新对象
  2. getPrototypeOf获取对象的原型
  3. setPrototypeOf将其设置为原型