google javascript脚本引擎v8学习笔记

google javascript脚本引擎v8学习笔记

ID:17421742

大小:1.25 MB

页数:18页

时间:2018-08-31

google javascript脚本引擎v8学习笔记_第1页
google javascript脚本引擎v8学习笔记_第2页
google javascript脚本引擎v8学习笔记_第3页
google javascript脚本引擎v8学习笔记_第4页
google javascript脚本引擎v8学习笔记_第5页
资源描述:

《google javascript脚本引擎v8学习笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GoogleJavascript脚本引擎v8学习笔记目录一、Googlev8整体印象21.1Googlev8是什么,能做什么?21.2Googlev8的获取及编译21.2.1获取源码21.2.2编译类库及示例3二、Googlev8入门32.1v8的基本概念32.2从HelloWorld开始52.3在C++中访问Javascript的变量及函数52.4在Javascript中访问C++全局函数及变量92.5在C++中“声明”“Javascript类”,供Javascript实例化152.6封装完整的C++类到J

2、avascript中,供Javascript实例化16三、Googlev8的开源应用163.1Node.js163.2v8cgi17四、参考资料17五、本文源码18一、Googlev8整体印象1.1Googlev8是什么,能做什么?v8是一款Javascript脚本引擎,它开放源代码,由Google丹麦开发,是GoogleChrome的一部分。和其它脚本语言(php,lua,python等)一样,Javascript也可以内嵌于应用程序,和编译性语言(c/c++等)交互。由于v8是用C++写的,所以在C++中

3、使用javascript显得更加的自然。通过在应用程序中引入脚本解析器,将一些业务逻辑交由脚本实现,可以使得系统更加灵活。C/C++的高效,Javascript的灵巧多变,使得我们的应用程序可以兼顾性能和效率。说得再具体直白一点,就是我们可以通过编写javascript脚本来操作C++提供的类,可以编写javascript函数供C++调用。像下面这样写javascript一定非常爽吧?var socket = new Socket(Socket.PF_INET, Socket.SOCK_STREAM, Soc

4、ket.IPPROTO_TCP);socket.setOption(Socket.SO_REUSEADDR, true);var conn = socket.connect("www.cppblog.com", 80);if (conn){  var httpHeader = "GET/pansunyou HTTP/1.1rHost:www.cppblog.comrr";    socket.send(httpHeader);   var responseText = socket.rece

5、ive(12000);    printf("responseText="+responseText+"");}socket.close();至于其性能,好吧,算我迷信,Google出品一定差不到哪里去。再是我也未完全明白它的原理,就不抄网上的文字了,可以本文的参考资料看到相关的介绍文档。1.2Googlev8的获取及编译1.2.1获取源码Googlev8以源码的形式提供,其开源项目地址为:http://code.google.com/p/v8/在linux下,可以使用以下命令获取其源码:svnche

6、ckouthttp://v8.googlecode.com/svn/trunk/v8在windows下,可以TortoiseSVN导出源码:1.2.2编译类库及示例GoogleV8的编译需要使用Scons(大概类似于Makefile或者CMake之类),而Scons需要使用Python2.x,所以需要先安装这两玩意儿。记得python一定要是2.x系列的,否则灰常灰常的郁闷。http://www.python.org/http://www.scons.org/Windows平台,进入命令后先运行,以初始化vc

7、编译环境。cmd/k""C:ProgramFilesMicrosoftVisualStudio9.0VCvcvarsall.bat""x86进入v8源码目录,执行Scons--help可查看编译选项。因为我是用来学习的,所以我编译debug版本,并且选择打印尽可能多的消息。在windows下,尽量选择编译为动态库吧,在为静态的v8.lib有160MB之巨,一个helloworld程序都要链接个半天。我的编译选项:sconsmode=debugverbose=onlibrary=sharedmsvcrt

8、=static编译结果为同目录下的v8_g.lib和v8_g.dll,release编译时无_g后缀。使用时非常简单,只需要在vc工程中加入v8的include目录,链接加入v8_g.lib即可。二、Googlev8入门2.1v8的基本概念在使用v8引擎之前,先来了解一下几个基本概念:句柄(handle),作用域(scope),上下文环境(可以简单地理解为运行环境)。2.1.1句柄(Handle)从

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。