结合旧的和新的设置

时间:2018-12-08 17:04:20

标签: javascript object youtube youtube-api youtube-javascript-api

我知道这样设置的代码有效, 我只是不知道它是否是一种好用的,不会有问题,这意味着它不会有问题。

它在做我们想要做的事情吗,是的。 它结合了 oldSettings newSettings 。 我不知道它的书写方式是否比这里的书写方式更好。 可能可以进行改进。

代码:

https://jsfiddle.net/Lnj7quby/8/

function combineSettings(oldSettings, newSettings) {
    const playerVars = Object.assign({}, oldSettings.playerVars, newSettings.playerVars);
    const settings = Object.assign({}, oldSettings, newSettings);
    settings.playerVars = playerVars;
    return settings;
}

旧设置

哪个是:defaultSettings

const 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
});
loadPlayer({
    target: ".playa",
    start: 8,
    end: 12,
    loop: true
});

1 个答案:

答案 0 :(得分:0)

使用spread syntax

const defaultSettings = {
  playerVars: {
    autoplay: 1,
    controls: 1,
    showinfo: 1,
    rel: 0,
    iv_load_policy: 3,
    cc_load_policy: 0,
    fs: 0,
    disablekb: 1
  }
}

const newSettings = {
  target: ".jacketc",
  width: 600,
  height: 338,
  start: 200,
  end: 205,
  loop: true
}

const mergedSettings = {
  ...defaultSettings,
  playerVars: {
    ...defaultSettings.playerVars,
    ...newSettings
  }
};

console.log(mergedSettings);