この記事の内容は嘘です。間違えてました。申し訳ありません。
謝罪
すみません。この記事の内容では並び替えが行われないようです。手元の環境では toString を見ていて並び替えられていたようです。指摘してくださった id:nanto_vi さんご指摘ありがとうございます。
以下のようにプロパティ値で並び替えたいとする。
var Klass = function(order) { this.order = order }; var array = [new Klass(3), new Klass(1), ....]; array.sort(function(a, b) { return a.order - b.order });
こうすると、 10 倍近く速くなる
var Klass = function(order) { this.order = order }; Klass.prototype.valueOf = function() { return this.order }; var array = [new Klass(3), new Klass(1), ....]; array.sort();
でも、 Firefox で動かないのでこうする
var Klass = function(order) { this.order = order }; Klass.prototype.valueOf = function() { return this.order }; var array = [new Klass(3), new Klass(1), ....]; array.sort(/*@cc_on);//*/function(a, b) { return a.order - b.order });