Javascript传递一个函数不同的参数集

时间:2013-04-05 17:05:08

标签: javascript

所以我有一个带有很多参数的函数,例如

function myFunction(height, width, name, surname, time){
...
}

麻烦的是我想用这个函数发送不同的参数集。

所以有时它会......

  function myFunction(height, width, depth, name, surname, time){
    ...
    }

该函数用于许多任务,我不希望函数中有一长串参数,并且在调用函数时需要在值列表中添加大量空格。

我需要更动态的东西,理想情况下,关联数组会传递给函数和从中创建的变量。

3 个答案:

答案 0 :(得分:6)

因为JavaScript没有命名参数,所以人们通常将对象用作“接口”

您可以接受作为对象的单个参数,并将所有这些参数作为键。

function myFunction(options){
   //access to options.height and more...

}

将对象中打包的参数传递给函数

myFunction({
  height: 100,
  widht: 300,
  ...
});

答案 1 :(得分:0)

我喜欢使用arguments参数。

function args() {
 for (var i = 0; i < arguments.length; i++) {
   alert(arguments[i]);
 }
}

答案 2 :(得分:0)

我的上一篇文章错了。我有一些不同的想法。对不起。

你可以编写一个带有长参数的函数,但是在执行函数时你不必使用所有这些函数。

功能

function foo(a, b, c) {
    //body;
};

可以像这样执行:

foo(a);
foo(a,b);
foo(a,b,c);

在函数内部检查参数是否为空以及是否设置了defaut值

function foo(a, b, c) {
    a = a !== 'null' ? a : defaultValue;
    b = b !== 'null' ? b : defaultValue;
    c = c !== 'null' ? c : defaultValue;
};