0
是否有任何方法可以比較同一個骨幹模型的兩個不同實例?比較兩個相同的骨幹模型(即)骨幹模型的兩個不同實例
是否有任何方法可以比較同一個骨幹模型的兩個不同實例?比較兩個相同的骨幹模型(即)骨幹模型的兩個不同實例
你的評論:
我不想通過傳遞屬性的名稱手動比較屬性的值。相反,當我給模型,它應該知道這是屬性,這是價值,然後比較值知道它等於或不是
有沒有內置的方法,比較模型與另一個模型。但是你可以實現對Backbone.Model
原型的方法來做到這一點:
Backbone.Model.prototype.equalTo = function(other) {
return _.isEqual(this.attributes, other.attributes);
};
它利用Underscore's isEqual()
其中比較兩個對象是否相等。 isEqual()
get的通過internal Backbone data objects attributes
。
你可以再做:
if (m1.equalTo(m2)) {
console.log("equal");
}
如果你不想修改Backbone.Model
,你可以從它擴展和實現equalTo()
那裏。
您想測試兩個實例是否具有相同的屬性,或者您的兩個引用是否指向相同的對象?對於前一個'_.isEqual(m1.attributes,m2.attributes)',或者如果你想限制比較的屬性,'_.isEqual(m1.pick(「attr1」,「attr2」),m2.pick 「attr1」,「attr2」))''。 –
你想要比較什麼?一切?屬性?原型?目前還不清楚你想要什麼。 –
我不想通過傳遞屬性名稱來手動比較屬性的值。相反,當我給模型,它應該知道它自己,這是屬性,這是價值,然後比較值知道它是否平等 –