Javascript : 混合后如何保留原始对象的定义对象描述符?

Javascript : How to keep defined object descriptor of original objects after mixing them up?

假设我有两个对象,我在每个道具上设置了描述符:

var readonly = {
     libName: _libName,
     libVersion: _libVersion,
     createStage: _createStage,
     renderer: _renderer
};
Object.keys(readonly).forEach(function (prop) {
    Object.defineProperty(readonly, prop, {
        writable: false

    });
});

var writable = {
    rendererOptions: _rendererOptions
};

Object.keys(writable).forEach(function (prop) {
    Object.defineProperty(writable, prop, {
        writable: false
    });
});

然后我想用分配合并这两个对象,但是没有保留描述符。我不知道它是否正常,因为创建了第三个对象。如果是这样,我该如何处理以保留描述符?这是我得到的(顺便说一句,这只是一个例子):

console.log(Object.getOwnPropertyDescriptor(writable, "rendererOptions"));
//gives Object {value: Object, writable: false, enumerable: true, configurable: true}

var o = Object.assign(readonly, writable);

console.log(Object.getOwnPropertyDescriptor(o, "rendererOptions"));
//gives Object {value: Object, writable: true, enumerable: true, configurable: true}

感谢您提供的任何帮助。如果您有更好的解决方案,我会全力支持。

这是我的评论作为回答:

您似乎在寻找类似于 MDN 关于 Object.assign 文章下的 completeAssign 示例的内容。这篇文章还应该有助于解释您从上面的代码中看到的行为