在函数内部调用相同的函数给出"不是函数"

时间:2018-05-29 17:47:30

标签: javascript jquery

我正在调用函数sync_thing(),它给出了以下错误消息:

  

未捕获的TypeError:sync_thing不是函数

以下是代码:

$(document).ready( function() {
  var sync_counter = 0;
  sync_thing();
  function sync_thing() {
    var sync_thing = $.ajax({
      url: '../there_be_the_functions/sync_thingy.php',
      success: function(response) {
        if (response != 'done') { // added later to clarify that it's not infinite loop
          sync_thing();
        }
      }
    }); 
  }
});

2 个答案:

答案 0 :(得分:1)

您正在重新定义函数内的sync_thing 。 看看

function sync_thing(){
    var sync_thing = {};
    //sync_thing is no longer a function at this point
}

答案 1 :(得分:1)

这里发生了两件事

  1. 您正在将sync_thing功能替换为var sync_thing = $.ajax({更改sync_thing定义并在您致电时抛出错误

  2. 如果每次都获得sync_thing,则会创建success的无限通话。