में समतुल्य तुलना को ओवरराइड करें क्या जावास्क्रिप्ट में समानता तुलना को ओवरराइड करना संभव है?जावास्क्रिप्ट
मैं समाधान के लिए सबसे नज़दीक हूं, मूल्य को परिभाषित करके और ऑब्जेक्ट के सामने प्लस के साथ मूल्य का उपयोग करके मूल्य को परिभाषित करना है।
यह काम करता है।
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 मैं जावास्क्रिप्ट में अंश वस्तुएं बना रहा हूं। –
अंश ऑब्जेक्ट्स कैसा दिखता है? क्या हम कुछ उदाहरण इनपुट देख सकते हैं? या हो सकता है कि मैं केवल गलत समझ रहा हूं कि आप क्या करने की कोशिश कर रहे हैं ... –