如果我使用JQuery' $.extend
来合并3个对象,我是否应该得到所有对象内容的联合?
作为一个例子,请看下面的例子;当我合并这些对象时,我期待结果:
{ hidden: ["foo", "link", "box-shadow"] }
但我明白了:
{ hidden: ["link", "box-shadow"] }
这是对的吗?是否有可能实现我期望/想要的结果?
(function() {
let defaults = { hidden: ["foo"] };
let options = { hidden: ["link"] };
let custom = { hidden: ["link", "box-shadow"] };
let result = {};
$.extend(true, result, defaults, options, custom);
console.log('result', result);
})()

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 0 :(得分:0)
这可能更接近您的需求,仅使用普通的Javascript:
(function() {
let defaults = { hidden: ["foo"] };
let options = { hidden: ["link"] };
let custom = { hidden: ["link", "box-shadow"] };
let result = {
hidden: [...defaults.hidden, ...options.hidden, ...custom.hidden]
};
// $.extend(true, result, defaults, options, custom);
console.log('result', result);
})()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;