2012-08-17 116 views
1

在Ruby和Java中,您將一個對象與另一個對象進行比較,並根據這兩個對象的順序返回一個數字。 Backbone has support僅基於單個對象進行排序。爲什麼Backbone比​​較器不能比較兩個對象?

這似乎是反主動和更復雜的。爲什麼Backbone會這樣做?使用這種技術有優勢嗎?

+0

您是否介意澄清「完全基於單個對象」的含義?我得到的印象是您在Backbone中提到的比較器機制,但單從上​​下文無法確定。 – Gabriel 2012-08-17 17:33:33

+1

如果您創建了一個採用單個參數的比較器函數,那麼您將其寫入,以便返回可與標準比較運算符進行比較的值'<' and '>' – jackwanders 2012-08-17 17:38:03

+0

返回單個值的表單在某些情況下更易於使用。例如,如果您想對數字標識進行排序,那麼您只需返回該標識,而不是編寫完整的比較函數。 – 2012-08-17 21:35:11

回答

4

the docs

比較器功能可以被定義爲無論是sortBy(通過一個函數,一個參數),或者作爲一種(傳遞需要兩個參數的比較器功能)。

這意味着,你可以實現在傳統方式Comparator:有兩個參數的行爲類似本地JavaScript sort功能陣列功能。
骨幹只是增加了另一種排序從underscore借來的收藏。

+0

我剛剛看到這個,但它並沒有真正回答爲什麼要以其他方式做這件事。我想這與性能有關,但我正在尋求某種確認。 – Sam 2012-08-17 17:41:34

+0

這不是關於表現,它只是一個選擇。此外,我認爲「排序」應該更快,因爲它是本地數組功能。 – 2012-08-18 22:24:03

+0

@Sam我認爲這回答了你的問題,它告訴你,你對_「Backbone支持基於**單獨對象**的錯誤支持是錯誤的。 – fguillen 2012-08-19 11:44:22