我正在开发一个项目,我无法使用jQuery。自从使用jQuery以来,我已经非常习惯于在函数中设置参数的方式。使用“jQuery”方式非常好,因此无论顺序如何,或者即使使用普通函数方法所需的所有默认值也是如此。
所以,我的问题是我怎么会这样:
function myFunction(param1, param2, param3, param4, param5) {
}
对于类jQuery方法,不使用jQuery:
function myFunction({
param1: 'test',
param2: 'test2'
});
对此的任何帮助都会很棒!
答案 0 :(得分:8)
我认为您想在函数中定义一个 options 参数,并针对默认值对象进行扩展:
function myFunction (options){
options = extend({ // default values
param1: 'test',
param2: 'test2'
}, options || {});
alert(options.param1);
}
// helper function to "extend" the 'b' object from 'a'
// by copying its properties
function extend(a, b) {
for ( var prop in b ) {
a[prop] = b[prop];
}
return a;
}
然后,如果你打电话:
myFunction ({param1:'overriden!'});
options.param1
将在您的函数中被覆盖,options.param2
将保留其默认值“test2”。