如何调试javascript函数

时间:2017-03-08 18:48:35

标签: javascript jquery debugging

我有以下代码来查找错误:

function something(callback) {
  somethingElse(function(err, res) {
    if (err) {
      callback(err);
    }
    callback(null, res);
  });
}

something(function(err, res){
  console.log(err,res);
});

//something else defined elsewhere

我应该从哪里开始?我寻找语法和事情看起来没问题,并尝试了jsHint来寻找可能会遇到的一些明显问题。我应该从哪里开始,我应该使用什么概念?

2 个答案:

答案 0 :(得分:0)

我的猜测是这是一个得分问题。 somethingElse范围内不提供something。如果.bind(this)在同一范围内定义,则可能会在something末尾添加somethingElse来解决问题。

function something(callback) {
  somethingElse(function(err, res) {
  if (err) callback(err);
  callback(null, res);
  });
}.bind(this)

something(function(err, res){
  console.log(err,res);
});

//something else defined elsewhere

如果您可以向我们展示更多代码,特别是定义somethingElse的代码,那将有助于我们为您提供帮助

答案 1 :(得分:-1)

您应该做的第一件事是检查开发者控制台。 Chrome调试窗口如下图所示。

在代码中使用console.log来模拟断点是在Javascript中调试的最简单方法。

当你使用异步函数时要注意的是this指针,它很容易指向不同的范围。在异步函数之后使用.bind(this)将强制指向

的异步内的this指针

enter image description here