理解返回“未定义”的函数

时间:2016-11-24 20:22:12

标签: javascript function scope

这个函数返回undefined,我无法理解它背后的原因是什么。我有一个全局变量:

var output = document.getElementById("totalNumber").value;

它得到的值很好,如果我做一个console.log我得到元素内的值。 然后我有:

 var add = document.getElementById("add");

 add.addEventListener("click", function(){
   console.log(adds(output));

  })

function adds(value){
  return value;
}

无论我做什么,都会返回undefined,原因是什么?

1 个答案:

答案 0 :(得分:0)

很可能你得到id totalNumber的元素值的时间是未定义的,因为input元素是空的。通常,此选择应在事件侦听器的回调内完成,因为此回调需要它。例如,请查看以下代码段:



var add = document.getElementById("add");

add.addEventListener("click", function(){
   var output = document.getElementById("totalNumber").value;
   console.log(adds(output));
  })

function adds(value){
  return value;
}

<input type="text" id="totalNumber"/>
<input type="button" id="add" value="add"/>
&#13;
&#13;
&#13;