将函数传递给javascript构造函数

时间:2016-10-09 16:47:18

标签: javascript

尝试从HTML输入字段获取变量并将其作为参数传递给javascript构造函数。我是JS的新手

构造

function Stopwatch(elem,count_Up,count_Down) {

  //Private Variables
  var time = 0; // Time in milliseconds
  var interval; // Used for update function
  var offset;   // 
  var countUp = count_Up
  var countDown = count_Down
  console.log('SWT'+countUp+count_Up)

将值添加到构造函数

function setCountTarget()
{
 var countTarget_Up = document.getElementById("count_Target").value;
 return countTarget_Up;

}

var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
//Create Stopwatch object 1

3 个答案:

答案 0 :(得分:0)

您不必在函数内声明另一个变量。

-m

返回字符串类型。 如果你想要一个号码,那么你就可以做到,

function setCountTarget(){
   return document.getElementById("count_Target").value;
}

而不是对象构造函数或实例化我会建议在循环中执行它。 你从用户那里得到一个数据(可能是计数的结束或开始)然后你从结束递减或递增递增。 在您可能不需要构造函数的每个细节中考虑您的问题。 最好再阅读面向对象的JS。

答案 1 :(得分:0)

很难确定,但我怀疑这是一个时间问题 - 为了获得输入节点的值,该节点需要在调用脚本之前加载到DOM中。尝试将Stopwatch()调用包装在window.onload函数中,这样您就可以确定DOM已完全加载:

function setCountTarget()
{
 var countTarget_Up = document.getElementById("count_Target").value;
 return countTarget_Up;
}

var watch ;//I'm assuming you want this to be a global variable;
window.onload = function(){    
   var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 
}

答案 2 :(得分:0)

您可以混合使用函数和值吗?

秒表中

console.log('SWT'+countUp+count_Up)

应该是

console.log('SWT'+countUp()+count_Up())

因为您要记录函数的值,而不是函数的代码。

观看

var watch = new Stopwatch(timer,setCountTarget(),setCountTarget()); 

应该是

var watch = new Stopwatch(timer,setCountTarget,setCountTarget); 

因为要传递函数,而不是函数值。