是否有可能重寫JavaScript中的等價比較呢?覆蓋等價比較在Javascript
我已經得到一種溶液最接近的是通過定義的valueOf功能和在該對象的前一個加調用的valueOf。
This Works。
equal(+x == +y, true);
但是這失敗了。
equal(x == y, true, "why does this fail.");
這裏是我的測試案例。
var Obj = function (val) {
this.value = val;
};
Obj.prototype.toString = function() {
return this.value;
};
Obj.prototype.valueOf = function() {
return this.value;
};
var x = new Obj(42);
var y = new Obj(42);
var z = new Obj(10);
test("Comparing custom objects", function() {
equal(x >= y, true);
equal(x <= y, true);
equal(x >= z, true);
equal(y >= z, true);
equal(x.toString(), y.toString());
equal(+x == +y, true);
equal(x == y, true, "why does this fails.");
});
演示在這裏:http://jsfiddle.net/tWyHg/5/
究竟是什麼你試圖在這裏實現什麼? –
@ElliotBonneville我在javascript中創建分數對象。 –
分數對象的外觀如何?我們可以看到一些示例輸入嗎?或者,也許我只是誤解你試圖做... –