如何比较卡布奇诺的2个对象的平等性

时间:2011-07-29 05:27:28

标签: javascript cappuccino

你如何比较卡布奇诺的两个对象是否平等。我已经尝试了==而且它似乎对我不起作用。

2 个答案:

答案 0 :(得分:3)

如果对象是常规的Cappuccino对象并且它实现了所需的方法,则可以使用[objectA isEqual:objectB]

答案 1 :(得分:2)

对象具有一等身份。使用“==”或“===”,两个对象永远不能彼此相等。

您可以使用一个函数来确定基于迭代属性的“相等性”,以查看两个对象是否具有相同的命名属性,并且这些属性具有相同的值。

e.g。

var compareObj = (function () {
  function doCompare(a, b) {
    for (var p in a) {
      if (a.hasOwnProperty(p) && !b.hasOwnProperty(p)) {
        return false;
      }
      if (a[p] != b[p]) {
        return false;
      }
    }
    return true;
  }
  return function(a, b) {
    return doCompare(a, b) && doCompare(b, a);
  }
}());