从函数中获取变量的值

时间:2012-02-18 12:21:10

标签: javascript function if-statement

我正在尝试将数据传递到我的函数中,如果没有数据传递,它将只使用默认值。


<a id="process" onclick='process(,"testing","test value")' href="#">Process</a>

function process(passvar1,passvar2,passvar3) {


  var defvar1 = 'default value 1', 
      defvar2 = 'default value 2', 
      defvar3 = 'default value 3';



  if (typeof(passvar1)=="undefined") {
      passvar1 = defvar1;
      return passvar1;
  }


 if (typeof(passvar2)=="undefined") {
      passvar2 = defvar2;
      return passvar2;
  }


  if (typeof(passvar1)=="undefined") {
      passvar1 = defvar1;
      return passvar3;
  }


  alert ('retuern values here ' + passvar1 + ' ' + passvar2 + ' ' + passvar3);

代码播放:http://jsbin.com/oledeg/

4 个答案:

答案 0 :(得分:2)

onclick='process(,"testing","test value")'

这是一个语法错误。做到这一点

onclick='process(undefined,"testing","test value")'

答案 1 :(得分:2)

查看您的评论,您可以简单地执行以下功能:

function process(passvar1, passvar2, passvar3) {
   passvar1 = passvar1 || 'default value 1';
   passvar2 = passvar2 || 'default value 2';
   passvar3 = passvar3 || 'default value 3';

   return 'retuern values here ' + passvar1 + ' ' + passvar2 + ' ' + passvar3;
}

alert(process("testing","test value", "third value"));
// retuern values here testing test value third value

在你的函数中,由于每个if条件中都有return,所以只执行第一个条件,只返回一个变量返回函数。

答案 2 :(得分:1)

您的onclick属性中的语法错误除外,您在每个return语句中调用if - 如果其中任何一个评估为true,您将过早返回从函数中,永远不会到达alert语句。只需删除这些行,因为它们没有做任何有益的事情。

答案 3 :(得分:0)

看看

流程

在process(,var,var)

这是你想要的吗?