#include <v8.h>
using namespace v8;
int main()
{
Isolate* isolate = Isolate::GetCurrent();
HandleScope handleScope(isolate);
Handle<Context> context = Context::New(isolate);
Context::Scope context_scope(context);
Handle<String> string = String::New("function Person () { this.name = 'headool'}");
Handle<Script> script = Script::Compile(string);
script->Run();
Handle<Value> value_person = context->Global()->Get(String::New("Person"));
Handle<Function> person_constructor = Handle<Function>::Cast(value_person);
Handle<Value> obj_value_person = person_constructor->CallAsConstructor(0, NULL);
Handle<Object> obj_person = Handle<Object>::Cast(obj_value_person);
String::AsciiValue ascii(obj_person->Get(String::New("name")));
printf("%s\n", *ascii);
return 0;
}
注意其中的:
Handle<Value> obj_value_person = person_constructor->CallAsConstructor(0, NULL);
Handle<Object> obj_person = Handle<Object>::Cast(obj_value_person);
Handle<Value> obj_value_person = person_constructor->CallAsConstructor(0, NULL);
Handle<Object> obj_person = Handle<Object>::Cast(obj_value_person);