您好我正在使用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 ++中的方法。
知道怎么做吗?