[在对象上专门定义一个只读属性,然后尝试在原始对象上分配另一个对象时,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似乎不在乎目标属性是否为...
所以我认为真正的问题是,以前的Object.assign
从来没有这样的情况可能导致异常。现在是因为存在只读属性。现在无法盲目在两个未知对象上使用assign
,因为它可能会爆炸。