Object.assign(…)尝试设置不带setter的属性

问题描述 投票:2回答:1

[在对象上专门定义一个只读属性,然后尝试在原始对象上分配另一个对象时,Object.assign似乎并不在意目标属性是否为只读:

var myObj = {
    firstName: "Jimbo",
  lastName: "Smythe"
};

Object.defineProperty(myObj, "fullName", {
    get: function () {
    return this.firstName + " " + this.lastName;
  }
});

Object.assign(myObj, {
  fullName: "Jimbo T. Smythe"
});

这将导致以下异常:

TypeError:无法设置仅具有吸气剂的#属性fullName”>

这不是Object.assign中的错误吗?

完整示例在这里:https://jsfiddle.net/fa8j7p5j/

[当在对象上专门定义一个仅获取属性,然后尝试在原始对象上分配另一个对象时,Object.assign似乎不在乎目标属性是否为...

javascript
1个回答
0
投票

所以我认为真正的问题是,以前的Object.assign从来没有这样的情况可能导致异常。现在是因为存在只读属性。现在无法盲目在两个未知对象上使用assign,因为它可能会爆炸。

© www.soinside.com 2019 - 2024. All rights reserved.