自定义类运算符包装到v8引擎Javascript

时间:2015-05-07 18:34:11

标签: javascript c++ v8

您好我正在使用Google的v8 JavaScript引擎,我在C ++环境(NOT JS环境)中有一个直截了当的问题。

我想做什么:

我正在尝试在游戏环境中创建一个像Vector一样的对象,在这种情况下,它有一个3个浮点的参数。

在C ++中这个函数有operator +,所以我可以做类似的事情......

示例1:(C ++)

Vector vector(5,5,5);
Vector vector2(10,10,10);

Vector final = vector + vector2;

当然会导致15,15,15 ......

现在最大的问题是如何才能实现这一点,以便当我在JavaScript中执行并将Vector公开为上面完全相同的对象时

示例2:(JS)

var l = new Vector(5,5,5);
var r = new Vector(10,10,10);

var final = l + r;
在JavaScript中,这通常会执行valueOf,我可以执行类似的做法"假操作员"又名使用这篇文章

http://www.2ality.com/2011/12/fake-operator-overloading.html

最大的问题是我该如何解决这个问题?

我正在考虑创建一个Add函数,这样我就可以在C ++中包含left + right,然后有一个函数调用它来传递vector.add(15,15,15)或vector.add(right);并且还将有Vector.add(左,右);在" JS"环境虽然

现在我想要做的是做示例2,即JavaScript。所以,当我做l + r;它将在内部调用Add方法调用C ++中的方法。

知道怎么做吗?

0 个答案:

没有答案