我似乎无法找到在javascript中重载[]运算符的方法.有人知道吗?
我在想......
MyClass.operator.lookup(index)
{
return myArray[index];
}
Run Code Online (Sandbox Code Playgroud)
或者我不是在看正确的事情.
是否可以在JavaScript中的类型实例之间定义自定义运算符?
例如,假设我有自定义矢量类,是否可以使用
vect1 == vect2
Run Code Online (Sandbox Code Playgroud)
检查是否相等,而底层代码是这样的?
operator ==(a, b) {
return a.x == b.x && a.y == b.y && a.z == b.z;
}
Run Code Online (Sandbox Code Playgroud)
(当然这是无稽之谈.)
我知道JavaScript不支持宏(Lisp风格的),但我想知道是否有人有解决方案可能模拟宏?我用谷歌搜索,其中一个解决方案建议使用eval(),但正如他所说,将是非常昂贵的.
他们并不一定非常喜欢.我只想用它们做简单的事情.它不应该使调试更加困难:)
我希望一个对象在数字上下文中返回一个值,在字符串上下文中返回一个完全不同的值.以下不起作用.
foo = {
toString: function() { return "string" },
valueOf: function() { return 123 }
}
console.log(foo * 2) // got 246, fine
console.log("hi " + foo) // got "hi 123", want "hi string"
Run Code Online (Sandbox Code Playgroud)