如何使用V8的内置函数

发布于 2024-08-25 14:04:31 字数 519 浏览 10 评论 0原文

我对 javascript 和 V8 都是新手。根据 Google 的 Embedder's Guide,我在上下文部分中看到了一些内容关于内置实用 JavaScript 函数。而且我还在下载的源代码中发现了一些.js文件(例如math.js),因此我尝试编写一个简单的程序来调用这些文件中的函数,但失败了。

  1. 是否由Persistent创建的上下文? context = Context::New() 有内置的js函数吗?我如何访问它们?

  2. 办法首先将现有的js文件导入为库(例如HTML页面中的src =“xxx”type =“text/javascript”),然后运行我自己的执行脚本?

  3. 我可以通过应用程序中嵌入的V8库调用谷歌地图api吗?如何?

I'm new in both javascript and V8. According to Google's Embedder's Guide, I saw something in the context section talking about built-in utility javascript functions. And I also found some .js files(e.g. math.js) in the downloaded source code, so I tried to write a simple program to call functions in these files, but I failed.

  1. Does a context created by Persistent<Context> context = Context::New() have any built-in js functions? How can I access them?

  2. Is there a way to first import existing js files as a library(something like src="xxx" type="text/javascript" in HTML page) and then run my own execute script?

  3. Can I call google maps api through the embedded V8 library in app? How?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

日裸衫吸 2024-09-01 14:04:31

3. Google 地图需要完整的浏览器 DOM(或者至少是 XMLHttpRequest 我猜),您不能仅从 Javascript 库中使用它。

3. Google Maps needs a full browser DOM (or at least XMLHttpRequest I guess), you can't use it from just a Javascript library.

七堇年 2024-09-01 14:04:31

我认为 v8 免费为您提供 Math.* 函数。

不过,您需要自己实现其他所有内容,例如加载其他 javascript 文件。 shell.cc 具有您所需要的一些功能可能正在寻找。

至于地图 API,我相信您需要一个完整的渲染引擎/javascript 引擎组合。您可能最好看看 Webkit 或可以用来嵌入 Webkit 来实现您想要的内容的东西做,我真的不能说。

I think v8 gives you the Math.* functions for free.

You need to implement everything else yourself though, like loading other javascript files. shell.cc has some of the functions you might be looking for.

As for the maps API, I believe you would need a full blown rendering engine/javascript engine combo for that. You might be better off taking a look at Webkit or something that you can use to embed Webkit for what you're looking to do, I can't really say.

莫相离 2024-09-01 14:04:31

例如,您可以使用 --allow_natives_syntax 或 --expose_natives_as 选项。
以下是在 src/math.js 中随机选取 MathLog 的示例:

首先使用 --expose_natives_as: 编译 shell,

$ scons d8 -j8

然后使用 --expose_natives_as:

$ ./d8 --expose_natives_as nat
V8 version 3.12.7 (candidate) [console: dumb]
d8> nat.MathLog(100)
4.605170185988092

或使用 --allow_natives_syntax 并加上 '%' 前缀:

$ ./d8 --allow_natives_syntax
V8 version 3.12.7 (candidate) [console: dumb]
d8> %MathLog(100)
4.605170185988092

You can use for example the --allow_natives_syntax or --expose_natives_as option.
Here are examples with MathLog picked at random in src/math.js:

First compile a shell with

$ scons d8 -j8

Then use --expose_natives_as:

$ ./d8 --expose_natives_as nat
V8 version 3.12.7 (candidate) [console: dumb]
d8> nat.MathLog(100)
4.605170185988092

or use --allow_natives_syntax with the '%' prefix:

$ ./d8 --allow_natives_syntax
V8 version 3.12.7 (candidate) [console: dumb]
d8> %MathLog(100)
4.605170185988092
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文