JS添加一个变量,++不在回调函数中工作

时间:2017-12-09 04:40:45

标签: javascript

我正在尝试为作业制作秒表。

起初,我以这种方式建立了我的圈功能

  handleClickLap: function(){
    $('#lap').click(function(event){
    if (Stopwatch.isRunning) {
      let lapCounter = 0;
      lapCounter = lapCounter + 1;
      console.log(lapCounter);
    }) 

它完美无缺。

我仔细阅读了作业,然后我必须像这样重写我的代码

lap: function(){
    if (Stopwatch.isRunning) {
    let lapCounter = 0;
    lapCounter ++;
     console.log(lapCounter);
    }
  }


  handleClickLap: function(){
$('#lap').click(function(event){
  Stopwatch.lap();

})

我在这里打电话给我所有的功能

window.onload = function(){
  AppController.handleClickStart();
  AppController.handleClickStopReset();
  AppController.handleClickLap();
};

问题是,lap:function()dosen&t;运行lapCounter ++;在永远不更新计数器我也试过++ lapcounter。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

哦,不,请阅读评论。这几乎可以肯定是嘿。归功于@alfasin(如果他留下答案就给他绿色支票)。但保持在功能之外的圈计数......例如

  {~/Desktop}$  cat test.js 
var obj = {
  lapCount: 0,
  addLap: function() {
    this.lapCount++;
    console.log(this.lapCount);
  }
}
obj.addLap()
obj.addLap()
  {~/Desktop}$  node test.js 
1
2

答案 1 :(得分:0)

由于你没有在AppController和Stopwatch上提供信息,我稍微调整了你的代码。希望这会有所帮助。

$(document).ready(() => {
  function lap (){
  		Stopwatch = {
        isRunning	: true
       }
      if (Stopwatch.isRunning) {
      let lapCounter = 0;
      lapCounter ++;
       console.log(lapCounter);
      }
    }

     $('#lap').click(function(event){ 
     		lap();
     })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="lap">
lap
</div>