【问题标题】:Why can't I assign the value of property in this case?在这种情况下,为什么我不能分配财产的价值?
【发布时间】:2021-09-20 14:17:34
【问题描述】:

这是我的代码:

let obj = {};

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

这是因为set __proto__,它规定了分配过程并只允许对象或null 是__proto__ 的值吗?

【问题讨论】:

    标签: javascript object prototype


    【解决方案1】:

    是的。 __proto__ setter 需要在第 2 步执行:

    如果 Type(proto) 既不是 Object 也不是 Null,返回 undefined。

    在这种情况下它什么都不做,并且之前的原型保持不变。

    另请注意,__proto__ 已弃用,应避免使用setPrototypeOf(和getPrototypeOf),这会使错误更明确:

    let obj = {};
    
    Object.setPrototypeOf(obj, "some value");

    【讨论】:

      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2016-06-04
      • 2017-11-23
      • 1970-01-01
      • 2010-10-16
      相关资源
      最近更新 更多