Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/jQuery:在自定义函数上改变参数_Javascript_Jquery_Function_Parameters - Fatal编程技术网

Javascript/jQuery:在自定义函数上改变参数

Javascript/jQuery:在自定义函数上改变参数,javascript,jquery,function,parameters,Javascript,Jquery,Function,Parameters,我正在编写一个插件,允许参数“设置”,但我预测用户不会总是想设置函数的每个方面 function This_Function(a,b,c,d); 例如,他们可能只想设置a和c,而不想设置b和d,他们只想将它们保留为默认值。如何编写函数或参数,以便用户可以自定义他们希望传递的函数?我有一种感觉,它涉及到解析输入,但我见过许多其他具有此功能的函数 提前谢谢你的帮助 function This_Function(options){ // set up the defaults; va

我正在编写一个插件,允许参数“设置”,但我预测用户不会总是想设置函数的每个方面

function This_Function(a,b,c,d);
例如,他们可能只想设置a和c,而不想设置b和d,他们只想将它们保留为默认值。如何编写函数或参数,以便用户可以自定义他们希望传递的函数?我有一种感觉,它涉及到解析输入,但我见过许多其他具有此功能的函数

提前谢谢你的帮助

function This_Function(options){
    // set up the defaults;
    var settings = {
        'opt1':2,
        'opt2': 'foobar'
    };
    $.extend(settings,options);
    if (settings.opt1 > 10) {
        //do stuff
    }
}
将允许您的用户执行以下操作:

This_Function();
This_Function({'opt1':30});
This_Function({'opt2':'jquery'});
This_Function({'opt1':20,'opt2':'javascript'});

更透明的方式

function This_Function(options) {
    var a = options.a;
    var b = options.b;
    var c = options.c;
    var d = options.d;
}

这个函数{a:12;c:'hello';d:1;

我想我在寻找这个问题的答案是:

function bacon(){
    for( var i in arguments ){
        if( arguments.hasOwnProperty(i) ){
            console.log( arguments[i] );
        }
    }
}

bacon( 'foo', 'bar', 'baz', 'boz' );

// 'foo'
// 'bar'
// 'baz'
// 'boz'
要确保使用的参数是传递给函数的合法参数,应使用.hasOwnProperty检查每个属性


我只花了3年时间就明白了:

如果你使用JQuery,这就是解决问题的方法。如果他们添加了JQuery标记,他们使用的是JQuery,这正是我想要的。你是个圣人,Plynx。这也很棒。谢谢。我给了你+1。