我用Dojo.declare创建了新对象。如何重载operator == for objects?
答案 0 :(得分:9)
您无法重载==
,但==
有隐式.toString()
调用,因此无论.toString()
返回什么,都可以让您有效地重载==
(有点):
function foo(){}
foo.prototype.toString = function(){ return 42; }
var x = new foo();
x == 42; // true
至于如何在Dojo中执行此操作,我不使用Dojo,抱歉,但要点是您获得对创建的任何对象的引用并添加thatObject.prototype.toString
,如我的示例所示。
答案 1 :(得分:6)
你做不到。 JavaScript不支持运算符重载。
答案 2 :(得分:3)
你不能在Java / ECMAscript中。您只能使用Adobe的ExtendScript重载运算符。见this example。另请参阅此blog entry(专业版)或this(反对)。