在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。
为什么两个看似平等的对象不相等?
答案 0 :(得分:3)
在您的代码中看起来像拼写错误,您是否想要返回比较值?
ChangeTracker.protype.hasChanged = function (current) {
var comparison = angular.equals(this.original, current);
return !compare;
};
看起来应该是:
return !comparison