javascript - 你如何在谷歌的 v8 中包含另一个 js 文件?

标签 javascript v8

如何在 v8 中的 .js 脚本文件中包含另一个脚本文件?
HTML 中有 <script> 标签,但如何在 v8 嵌入式程序中完成?

最佳答案

您必须手动添加此功能,我是这样做的:

Handle<Value> Include(const Arguments& args) {
    for (int i = 0; i < args.Length(); i++) {
        String::Utf8Value str(args[i]);

        // load_file loads the file with this name into a string,
        // I imagine you can write a function to do this :)
        std::string js_file = load_file(*str);

        if(js_file.length() > 0) {
            Handle<String> source = String::New(js_file.c_str());
            Handle<Script> script = Script::Compile(source);
            return script->Run();
        }
    }
    return Undefined();
}

Handle<ObjectTemplate> global = ObjectTemplate::New();

global->Set(String::New("include"), FunctionTemplate::New(Include));

它基本上添加了一个全局可访问的函数,可以在当前上下文中加载和运行 javascript 文件。我在我的项目中使用它,就像做梦一样。

// beginning of main javascript file
include("otherlib.js");

关于javascript - 你如何在谷歌的 v8 中包含另一个 js 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1149340/

相关文章:

node.js - 我们可以在node.js中使用process.hrtime()作为UUID吗?

javascript - 如何使用 v8 隐藏类优化技术进行优化?

javascript - 如何删除 Angular js中的表格行?

javascript - 将 KB 转换为 MB 和 GB

c++ - 从线程使用 v8 句柄失败

javascript - 带有 Socket.IO 1.0 的 NodeJS - 堆外的内存泄漏

javascript - 我怎样才能确保 Electron 窗口完全从内存中删除?

javascript - 如何在 jquery 插件实例之间共享属性和函数?

javascript - 为什么这个 jQuery 脚本没有用 HTML 页面上的 GIF 声明替换视频声明

javascript - capybara 无法找到链接 "Delete Comment"