我正在編寫一個插件,允許參數「設置」。但我預測用戶並不總是想要設置該功能的每個方面。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