最佳答案
我有一个函数,它接受一个 config
对象作为参数。在函数中,我还有 default
对象。这些对象中的每一个都包含一些属性,这些属性实际上是作为函数中其余代码的设置工作的。为了避免必须指定 config
对象中的所有设置,我使用 jQuery 的 extend
方法来填充一个新对象 settings
,如果 default
对象中没有指定这些默认值,那么 settings
就是 default
对象中的默认值:
var config = {key1: value1};
var default = {key1: default1, key2: default2, key 3: default 3};
var settings = $.extend(default, config);
//resulting properties of settings:
settings = {key1: value1, key2: default2, key 3: default 3};
这非常好用,但是我想在不需要 jQuery 的情况下重现这个功能。是否有一个同样优雅(或接近)的方法来使用普通的 ol’javascript 完成这项工作?
这个问题不是“ 如何动态合并两个 JavaScript 对象的属性?”问题的复制品。而这个问题只是想创建一个对象,其中包含来自两个独立对象的所有键和值——我特别想解决如何在两个对象共享一些键但不是所有键的情况下做到这一点,以及在存在重复键的情况下,哪个对象将获得结果对象的优先级(默认值)。更具体地说,我想解决使用 jQuery 的方法来实现这一点的问题,并找到一种不使用 jQuery 的替代方法。虽然这两个问题的许多答案是重叠的,但这并不意味着问题本身是相同的。