javascript - 两个 'equal' javascript 对象不相等

标签 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。

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

最佳答案

看起来您的代码中有一个拼写错误,您的意思是返回比较值吗?

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

看起来应该是:

返回!比较

关于javascript - 两个 'equal' javascript 对象不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105929/

相关文章:

javascript - jQuery - 在变量元素内引用伪/其他类

html - 动态创建复选框列

ajax - 单页应用程序和开放图谱

javascript - 在 underscore.js 中通过对象键查找

javascript - 将输入字符串与文本/元素匹配并突出显示 react 性

javascript - 模仿 javascript 类中的静态属性

javascript - meteor 发布订阅不是被动的

javascript - 如何管理 Webpack/Electron 应用程序的配置?

javascript - AngularJS - 使用 TweenMax 进行位置感知 ng-view 导航

javascript - Promise 在解决之前不等待嵌套 promise