在JS中实现简单的回调

时间:2017-04-27 05:09:25

标签: javascript callback

我正在尝试学习JS中的回调,我不明白为什么以下代码不起作用:

function timer(){
    let count = 0;
    return function (){
        function inc(){
            count++;
        }

        function getCount(){
            return count;
        }
    }
}

let t = timer();
t.inc();
t.inc();
t.inc();
console.log(t.getCount());

2 个答案:

答案 0 :(得分:1)

错误地声明了

return对象。你可以像这样使用

  1. 不使用对象上的函数使用返回。
  2. 您正在使用incgetcount 私有函数不在返回对象函数中。因此它不会返回。
  3. 
    
    function timer() {
      let count = 0;
      return {
        inc : function() {
          count++;
        },
      getCount : function() {
          return count;
        }
      }
    }
    
    let t = timer();
    t.inc();
    t.inc();
    t.inc();
    console.log(t.getCount());
    
    
    

答案 1 :(得分:0)

因为你的计时器功能会返回一个函数但在里面它不会返回任何东西

这是更正



function timer(){
    let count = 0;
        return { 
        inc :function(){
            count++;
        },

        getCount :function (){
            return count;
        }}
}

let t = timer();
t.inc();
t.inc();
t.inc();
console.log(t.getCount());