在node.js C ++插件中实现JS算术运算符
是否有可能在node.js C ++插件中实现算术运算符?
所以,如果myclass
是一个从c ++类打包的JS对象,我可以在包装的C ++函数的类中实现javascript“+”运算符,以便下面的代码可以工作吗?
var a = new myclass(); var b = new myclass(); var c = a + b;
这将允许在适当的对象上进行更优雅的算术运算处理(例如,如果myclass表示向量或matrix类)。 现在,唯一的解决scheme是声明一个正常的函数来处理操作符,如:
var c=a.add(b);
但这并不好。 我希望有人知道v8内部可以回答这个问题。
不幸的是, +
运营商的行为不公开的修改。
定义JavaScript的ECMA-262规范将+
运算符定义为添加两个数字,或者连接两个string。 为此,实现在对象上调用.toString()
和/或.valueOf()
,然后执行连接或添加。 运营商本身并没有涉及到实现C ++代码。 C ++代码只能影响返回处理的string/值。