16
我有一個具有多個成員的自定義類。我需要將它們相互比較。 javascript讓我寫:如何在javascript中自定義對象執行小於/大於比較
var a = new MyType(1);
var b = new MyType(2);
if (a < b) { ...
但我不明白邏輯比較的行爲。有人可以解釋上述代碼中<比較的語義嗎?有沒有辦法控制發生的事情,以便我可以得到正確的行爲?我知道我可以爲這個類寫一個比較方法,但是由於javascript讓我寫,所以我想知道它在做什麼。
謝謝。
哇,這就像一個JavaScript的IComparable接口。 – 2012-04-26 18:52:08
@Jay當比較對象的相等性('==','===')時,它總會比較引用(2個操作數是否指向內存中相同的確切對象)。你需要定義類似'.isEqual'的方法,並且通常調用它'a.isEqual(b)' – Esailija 2012-04-26 19:00:45
謝謝。那很完美。儘管如此,它不會使==或===工作。奇怪的是,我無法在網絡上的任何地方找到這個解決方案。 – drdwilcox 2012-04-26 20:00:09