两个相等的' javascript对象不相等

时间:2015-08-19 21:25:44

标签: javascript angularjs underscore.js

在Angular应用程序中,我正在比较两个对象(在用户进行更改后,原始对象与当前对象)。问题是,两个对象不相等 - 甚至在进行任何更改之前。在浏览器中调试时,两个对象看起来完全相同。下面我尝试angular.equals(),但comparison评估为false:

ChangeTracker.protype.hasChanged = function (current) { 
  var comparison = angular.equals(this.original, current);    
  return !comparison;  
};  

我也尝试过Underscore的_.isEqual以及常规(==)和严格(===)等式运算符。

我以为我可能会通过引用进行比较,但即使我在JSON.parse(JSON.stringify())中包装对象,比较仍会返回false。

为什么两个看似平等的对象不相等?

1 个答案:

答案 0 :(得分:3)

在您的代码中看起来像拼写错误,您是否想要返回比较值?

ChangeTracker.protype.hasChanged = function (current) { 
  var comparison = angular.equals(this.original, current);    
  return !compare;  
}; 

看起来应该是:

return !comparison