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 示例之类的东西。本文还应该有助于解释您从上面的代码中看到的行为
相关文章:
- 如何设置类型化对象的属性,同时保留它's类型
- 如何在发布JavaScript日期对象时保留时区偏移量
- Javascript扩展对象's原型,但保留旧原型
- 为什么 Javascript 中的嵌套对象不保留它们的值
- 我应该如何保留对'options对象'在ES6实例中
- javascript对象,连接重复的键,同时保留多个值
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- Javascript:如何在混合原始对象后保留定义的对象描述符
- Javascript对象保留包含旧数据
- 下划线,清除对象的所有值,但保留键
- 将对象分配给另一个对象并保留原始数据
- 如何从新对象返回值,同时保留其方法
- 按字母顺序排列 AngularJS 中对象保留键/值关联的选项
- Javascript子类对象不保留基类的属性/方法
- ThreeJS - 始终将对象保留在摄像机视图中
- 将两个或多个 JSON 对象数组合并为一个数组,保留唯一性
- 是否可以在JS中获取保留字(变量,函数,对象名称)的列表
- 有没有办法初始化保留初始 HTML 的 Vue 对象
- JS - 对象内的保留词
- Javascript递归对象无序列表为父对象保留相同的索引