修改自调用函数内的对象值

时间:2018-05-15 16:27:08

标签: javascript function

我想构建一个基本的JS库。 我有一个包含对象的自调用函数。

var test = (function (window) {

var defaults = {
    container: 'app',
    size: 500
};

function init() {
    var div = document.getElementById(defaults.container);
    var playerTemplate = 
    `<div class="container">
        <h1>hi</h1>
    </div>`;
    div.innerHTML = playerTemplate;
};

return {
    init: init
};

})(window);

当我运行此函数时,我想传递一个对象并更改其中的默认对象。我怎么能这样做?

像这样:

test.init({size: 300});

1 个答案:

答案 0 :(得分:0)

您可以使用Object.assign方法覆盖默认值

var test = (function (window) {

var defaults = {
    container: 'app',
    size: 500
};

function init(options) {
    const opts = Object.assign({}, defaults, options);

    var div = document.getElementById(opts.container);
    var playerTemplate =
        `<div class="container">
        <h1>hi</h1>
    </div>`;
    div.innerHTML = playerTemplate;
};

 return {
    init: init
 };

})(window);

test.init({ size: 300 });