2017-05-11 21 views
0

我正在使用Javascript解釋器,它似乎提供了一個buggy Array.prototype.sort,我想替換它(至少出於測試目的)。如何編寫內置原型的替代品?

我有一個功能mySort(array, comparator),但我怎麼能使它的功能像array.sort(comparator)

我還需要提供一個默認的比較器,簡單的return a<b ? -1 : a>b ? +1 : 0就足夠了嗎?

還有更多的問題我不知道?

一個側面的問題:我簡單的排序工作,但我很樂意用一些經過良好測試的代碼替換它。

+0

您可以覆蓋默認的原型,但它是在這種情況下 –

回答

3
Array.prototype.sort=function(comp){ return mySort(this,comp);}; 

或使用自定義數組:

myArray=Object.create(Array.prototype); 
myArray.sort=function(comp){ return mySort(this,comp);}; 

example=Object.create(myArray); 
example.push(1,2); 
example.sort(); 
+0

謝謝你一個壞主意。那很簡單? ;)沒有自定義數組,排序函數可能會中斷(即使不是,我需要將其替換以查明發生了什麼)。 +++默認比較器怎麼樣? – maaartinus

+0

@maaartinus:對我來說看起來不錯... –

+0

@maaartinus:你應該考慮到什麼都不能擊敗基於引擎的語言(用像c這樣的母語)代碼來表現...... –