Local<Value> add(const Arguments& args) { int a = args[0].asNumber().toInt32(); int b = args[1].asNumber().toInt32(); int ret = real_add(a, b); return Number::newNumber(ret); } int add(int a, int b) { return a + b; } class TestClass : public script::ScriptClass { int age; int add(int a, int b); void setSrc(const string& src); void draw(Image* img); }; defineClass<TestClass>("Test") .constructor() .instanceProperty("age", &TestClass::age) .instanceProperty("src", &TestClass::setSrc) .instanceFunction("add", &TestClass::add) .instanceFunction("draw", &TestClass::draw) .build();
a = args[0].asNumber().toInt32(); int b = args[1].asNumber().toInt32(); int ret = real_add(a, b); return Number::newNumber(ret); } int add(int a, int b) { return a + b; } 编译期生成 u -> C++ u C++ -> u +