在node.js C ++插件中实现JS算术运算符

时间:2014-01-22 16:53:58

标签: javascript c++ node.js

是否可以在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内幕知识的人可以回答这个问题。

1 个答案:

答案 0 :(得分:0)

不幸的是,+运算符的行为不会被公开以进行修改。

定义JavaScript的ECMA-262规范将+运算符定义为添加两个数字或连接两个字符串。为此,实现在对象上调用.toString()和/或.valueOf(),然后执行连接或添加。关于运算符本身的任何内容都没有暴露给实现C ++代码。 C ++代码只能影响为处理返回的字符串/值。