是否可以在 JavaScript 中的类型实例之间定义自定义运算符?
例如,假设我有一个自定义向量类,是否可以使用
vect1 == vect2
检查是否相等,而底层代码会是这样的?
operator ==(a, b) {
return a.x == b.x && a.y == b.y && a.z == b.z;
}
(这当然是废话。)
我同意向量原型上的相等函数是最好的解决方案。请注意,您还可以通过链接构建其他类似中缀的运算符。
function Vector(x, y, z) {
this.x = x;
this.y = y;
this.z = z;
}
Vector.prototype.add = function (v2) {
var v = new Vector(this.x + v2.x,
this.y + v2.y,
this.z + v2.z);
return v;
}
Vector.prototype.equal = function (v2) {
return this.x == v2.x && this.y == v2.y && this.z == v2.z;
}
你可以看到在线样本在这里 http://startpad.googlecode.com/hg/labs/js/misc/chaining.html.
更新:这是创建一个更广泛的示例工厂功能 http://wiki.pageforest.com/#js-patterns/factory-function支持链接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)