我正在编写一个插件,允许参数“设置”。但我预测用户并不总是想要设置该功能的每个方面。Javascript/jQuery:改变自定义函数的参数
function This_Function(a,b,c,d);
举例来说,也许他们会只希望建立a
和c
,但不b
和d
(他们就会宁愿让那些为默认值)。我该如何编写函数(或者这个问题的参数),以便用户可以自定义他们想要传递的函数?我有一种感觉,它涉及解析输入,但我已经看到许多其他功能与此功能。
在此先感谢您的帮助。
我正在编写一个插件,允许参数“设置”。但我预测用户并不总是想要设置该功能的每个方面。Javascript/jQuery:改变自定义函数的参数
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;
}
This_Function({一:12; C: '你好'; d:1);
这也很棒。谢谢。我给了你+1。 – dclowd9901 2010-03-27 21:10:25
我想我是真的在寻找这个问题的答案是这样的一个:
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,这是做它的方式。 – Plynx 2010-03-27 21:00:46
如果他们添加了他们正在使用的jQuery标签jQuery – PetersenDidIt 2010-03-27 21:03:11
这正是我正在寻找的。你是一位圣人,Plynx。 – dclowd9901 2010-03-27 21:08:48