为什么在这种情况下我不能分配属性的值?

xjreopfe  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(416)

这是我的密码:

let obj = {};

obj.__proto__ = "some value";
console.log(obj.__proto__ == Object.prototype);

这是因为天气原因吗 set __proto__ ,它调节分配过程,只允许对象或 null 价值 __proto__ ?

zynd9foi

zynd9foi1#

对这个 __proto__ 在第2步中,要求setter执行以下操作:
如果类型(proto)既不是object也不是null,则返回undefined。
在这种情况下,它什么也不做,之前的原型保持不变。
还要注意 __proto__ 不推荐使用,应避免使用 setPrototypeOf (及 getPrototypeOf ),这使错误变得明确:

let obj = {};

Object.setPrototypeOf(obj, "some value");

相关问题