这里要做的是将旧设置与新设置相结合。
代码:
https://jsfiddle.net/zt7anuL3/96/
oldSettings 指的是“ defaultSettings ”,它们都是从此开始的。
playerVars: {
autoplay: 1,
controls: 1,
showinfo: 1,
rel: 0,
iv_load_policy: 3,
cc_load_policy: 0,
fs: 0,
disablekb: 1,
},
newSettings 是在每个负载播放器中指定的内容。
loadPlayer({
target: ".jacketc",
width: 600,
height: 338,
start: 200,
end: 205,
loop:true
});
我尝试独自完成此操作,但不确定是否正确编写了该代码。
我需要知道我是否做对了,如果我做不到,那么正确的做法是什么。如果您可以对其进行更正,那将是有帮助的。
有人刚刚告诉我,我可以使用Object.assign()
来组合属性,但是该怎么做?那就是我想在这里做的吗?
function combineSettings(oldSettings, newSettings) {
const props = Object.keys(newSettings);
const combinedSettings = props.reduce(function combine(combined, prop) {
if (typeof(oldSettings[prop]) === "object") {
const oldProp = oldSettings[prop] || {};
const newProp = newSettings[prop] || {};
combined[prop] = combineSettings(oldProp, newProp);
} else {
combined[prop] = newSettings[prop];
}
return combined;
}, oldSettings);
return combinedSettings;
}
答案 0 :(得分:0)
好像您正在尝试做Object.assign()
一样。
您可以使用Object.assign()
组合两个或更多对象的属性。
您可以找到文档here。
要记住的重要一点是,前面对象的属性会被参数列表中后面的对象覆盖。
var obj1 = {
a: 1,
b: 2
};
var obj2 = {
a: 3,
c: 4
};
var obj = Object.assign({}, obj1, obj2);
console.log(obj);
您可以如下修改功能:
function combineSettings(oldSettings, newSettings) {
return Object.assign({}, oldSettings, newSettings);
}