Я создал новые объекты с Dojo.declare. Как перегрузить оператор == для объектов?
Как перегрузить равенство оператора для объектов JavaScript
Ответ 1
Вы не можете перегружать ==
, но ==
имеет неявный вызов .toString()
, поэтому независимо от того, что возвращает .toString()
, вы сможете эффективно перегрузить ==
(kinda):
function foo(){}
foo.prototype.toString = function(){ return 42; }
var x = new foo();
x == 42; // true
Что касается того, как это сделать в Dojo, я не использую Dojo, извините, но суть в том, что вы получаете ссылку на любой объект, созданный, и добавляете thatObject.prototype.toString
, как в моем примере.
Ответ 2
Вы не можете. JavaScript не поддерживает перегрузку оператора.
Ответ 3
Вы не можете в Javascript/ECMAscript. Вы можете перегружать операторы в ExtendScript из Adobe. Смотрите этот пример. Также просмотрите эту запись в блоге (pro) или это (против).