带有选项的Javascript对象功能

dev*_*s11 4 javascript function object options literals

我正在尝试使用选项创建一个函数.我相信我必须使用对象,但到目前为止失败.通过选项我的意思是这样的:

insertButton({
    settings:{
        value1:'Some text'      
    }
});

function insertButton(settings){
    settings = new Object();    
    document.write(settings.value1);
}
Run Code Online (Sandbox Code Playgroud)

显然,这不会工作,但我试图表明我的意思.也许有人可以帮忙.

我问,因为现在我有简单的功能,我可以通过严格的顺序传递值.对于选项,我希望在函数中不变为变量顺序.例如:

function insertButton2(value1,value2,value3){
    document.write(value1);
    document.write(value2);
    document.write(value3);   
}

insertButton2('a','','c');  //empty commas to skip value2 
Run Code Online (Sandbox Code Playgroud)

留空逗号以确保'c'为value3对我来说不方便.这就是为什么我想尝试对象,选项.

谢谢.

Zir*_*rak 8

您只需将具有所需键/值的对象传递给函数:

function parameterify(params) {
    console.log(params.isAwesome);
}

parameterify({
    isAwesome : true
});
//logs true
Run Code Online (Sandbox Code Playgroud)

你有两个错误:

  1. js中没有名称参数,因此{settings:{}}会传递带有设置键的对象(因此在函数内部,您必须这样做settings.settings)

  2. settings在函数(settings = new Object();)的顶部重新声明,无论你传入什么内容都会覆盖它.作为旁注,new Object是iffy - 对象文字{}更酷