Javascript跳过参数函数调用
javascript初学者在这里。Javascript跳过参数函数调用
比方说,我有一个javascript函数,有3个参数:
function f(arg1, arg2, arg3) { // do stuff }
我知道我可以调用F(值1,值2);在这种情况下,函数范围arg1将是value1,arg2将是value2,arg3将是null。
一切都OK了。但是,如果我想调用只给arg1
和arg3
赋值的函数,我需要这样做:f(value1, null, value2)
;
有没有一种方法,我可以指定哪些参数具有更多的C# - 乱七八糟的方式(没有指定没有给出参数为null)?这样的事情:对于调用f值只为arg1
和arg3
我会写f(value1, arg3 = value2);
任何想法? 干杯!
如果你打算做(让我们说这是有效的)
f(value1, arg3 = value2)
然后论点2将是不确定的,所以只是传递:
f(value1, undefined, value2)
只有这样,你就可以用JS做这件事是传递一个包含所有参数的数组。
您的默认值将不得不在函数中设置 - 您无法在JavaScript中为参数定义默认值。
function foo(args){
var arg1 = args[ 0 ] || "default_value";
var arg2 = args[ 1 ] || 0;
///etc...
}
更妙的是,而不是数组,你可以通过一个简单的对象,它可以让你通过自己的对象键访问参数:
function foo(params){
var arg1 = params[ "arg1" ] || "default_value";
var arg2 = params[ "arg2" ] || 0;
///etc...
}
+1这可以替代 – Girish 2014-09-03 11:08:52
将此代码添加到您的函数(默认值)
function f(a, b, c)
{
a = typeof a !== 'undefined' ? a : 42;
b = typeof b !== 'undefined' ? b : 'default_b';
a = typeof c !== 'undefined' ? c : 43;
}
呼叫这样
f(arg1 , undefined, arg3)
功能
有一种方法,我已经看到了这一点:
例如
function person(name,surname,age)
{
...
}
person('Xavier',null,30);
,你可以这样做:
function person(paramObj)
{
var name = paramObj.name;
var surname = paramObj.surname;
var age = paramObj.age;
}
调用是这样的:
person({name:'Xavier',age:30});
我认为这是最接近你能够做到这一点,就像在C#中记住JS没有被压缩,所以你不能预测函数的参数。
是的,你可以。它可写为:
function f(arg1, undefined, arg3) { // do stuff }
在这个调用中的参数1 & 3将通过和参数2将不被发送。
参数2将被发送并且它将具有值“undefined” – Vee6 2016-02-24 15:45:24
我认为没有运气 – Girish 2014-09-03 11:06:37
不,但您可以传递2个参数并检查后者的类型 – Johan 2014-09-03 11:07:19