Как перегрузить равенство оператора для объектов JavaScript

Я создал новые объекты с Dojo.declare. Как перегрузить оператор == для объектов?

Ответ 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) или это (против).