在C++應(yīng)用程序中使用JavaScript

當(dāng)谷歌發(fā)布其Chrome瀏覽器時(shí),該公司包括一個(gè)名為V8的JavaScript的快速實(shí)現(xiàn),它是所有瀏覽器中都包含的客戶端腳本語言。早在Netscape 4.1時(shí)代,JavaScript的早期采用者就沒有這種語言,因?yàn)闆]有調(diào)試工具,每個(gè)瀏覽器都有不同的實(shí)現(xiàn),不同版本的Netscape瀏覽器也有所不同。這是'愉快地編寫跨瀏覽器代碼并在許多不同的瀏覽器上進(jìn)行測試。

從那時(shí)起,Google Maps和Gmail使用了整個(gè)Ajax(異步JavaScript和XML)技術(shù),JavaScript得到了重大回報(bào)?,F(xiàn)在有體面的工具。Google's V8用C++編寫,編譯和執(zhí)行JavaScript源代碼,處理對象的內(nèi)存分配,垃圾收集不再需要的對象。V8比其他瀏覽器中的JavaScript快得多,因?yàn)樗幾g為本機(jī)代碼,而不是已解釋的bytecode。

JavaScript V8V8不是't僅適用于鉻。如果您的C++應(yīng)用程序需要腳本才能使用戶能夠編寫在運(yùn)行時(shí)執(zhí)行的代碼,那么您可以將V8嵌入到應(yīng)用程序中。V8是根據(jù)自由BSD許可協(xié)議授權(quán)的開源高性能JavaScript引擎。谷歌甚至提供了一個(gè)嵌入式's指南。

這里'這是一個(gè)簡單的例子,Google用JavaScript提供經(jīng)典的Hello World。它適用于希望在C++應(yīng)用程序中嵌入V8的C++程序員

 int main(int argc,char*ar**[]){
//創(chuàng)建一個(gè)保存JavaScript源代碼的字符串。
string source=string::New("'Hello'+',World'");
//編譯它。
Script Script=Script::Compile(source);
//Run it。
Value result=Script->Run();
//將結(jié)果轉(zhuǎn)換為ASCII字符串并顯示它。
string::ascivalue ASCII(result);
printf(幼兒飲食健康小常識"%s \ n",*ascii);

V8作為獨(dú)立程序運(yùn)行,或者可以嵌入以C++編寫的任何應(yīng)用程序中。

教育資源網(wǎng)_1