是否可以在node.js C ++插件中实现算术运算符?
因此,如果myclass
是一个由c ++类包装的JS对象,我可以在包装的C ++函数的类中实现javascript“+”运算符,以便以下代码可以工作吗?
var a = new myclass();
var b = new myclass();
var c = a + b;
它允许在适当的对象上更优雅地处理算术运算(例如,如果 myclass 表示向量或矩阵类)。目前,唯一的解决方案是声明一个正常的函数来处理运算符,如:
var c=a.add(b);
但这并不好。我希望有v8内幕知识的人可以回答这个问题。
答案 0 :(得分:0)
不幸的是,+
运算符的行为不会被公开以进行修改。
定义JavaScript的ECMA-262规范将+
运算符定义为添加两个数字或连接两个字符串。为此,实现在对象上调用.toString()
和/或.valueOf()
,然后执行连接或添加。关于运算符本身的任何内容都没有暴露给实现C ++代码。 C ++代码只能影响为处理返回的字符串/值。