创建对象和比较字段时出现 JavaScript 错误

标签 javascript

我创建了一个填充数据的javascript对象,当我将此对象返回到另一个类并在该对象上运行isError函数时,我总是得到true,但我不明白为什么。

这是我创建的新对象:

function WSResponse()
{
  this.error = new Object();
  this.isError = function()
  {
    if (this.error.status === '0')
    {
      return false;
    }
    else
    {
      return true;
    }
  }
}

这是我的服务:

...Some code.. 
var wsresponse = new WSResponse();
wsresponse.data = responseFromServer.ws_result;
wsresponse.error.status='0';
wsresponse.error.msg = responseFromServer.msg;
return wsresponse;

这是我的 Controller :

if (response.isError)
{               
    $scope.isLoginError = true;
}
else
{
    $scope.isLoginError = false;    
}

出于某种原因,我总是得到 true,当我调试时,我可以看到该值为 0 或 -1(字符串)
问题是什么 ?

谢谢

最佳答案

isError是一个函数,所以你需要像函数一样调用它,即response.isError()

if(response.isError) 将始终返回 true,因为您正在有效地检查是否存在附加到响应对象的 isError 对象(在本例中为函数)。

if (response.isError())
{               
    $scope.isLoginError = true;
}
else
{
    $scope.isLoginError = false;    
}

关于创建对象和比较字段时出现 JavaScript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25789608/

相关文章:

javascript - 有没有 javascript ssh 客户端?

javascript - 主干路由和过滤——更好的方法

javascript - Socket.io 没有从每个 react 组件中删除监听器

javascript - d3.js 如何使用单选按钮结果来更新图表

javascript - 如何在 Google Analytics 中使用 trackPageview?

javascript - 在加载时为 float 标签添加事件监听器

javascript - TypeError : name. addEventListener 不是函数

javascript - 我可以将为 java 创建的语法文件转换为为 javascript 创建的语法文件吗?

javascript - 为什么这段 JavaScript css 过滤器代码在 Firefox 中有效,但在 Chrome 中无效?

javascript - 如何将外部 Javascript 包含到 html5