Javascript 在自调用函数中修改对象值

Javascript 在自调用函数中修改对象值,javascript,function,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="containe

我想建立一个基本的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);

可以使用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 });
var测试=(函数(窗口){
var默认值={
容器:“应用程序”,
尺码:500
};
函数初始化(选项){
const opts=Object.assign({},默认值,选项);
var div=document.getElementById(opts.container);
变量playerTemplate=
`
你好
`;
div.innerHTML=playerTemplate;
};
返回{
init:init
};
})(窗口);
test.init({size:300});

您的问题是…?首先向
init
函数添加一个参数…您可以使用
对象。分配
默认值
对象与参数中的对象合并。
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 });