• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            雖不能至,心向往之

            —— 巴人也,操C++口音,混跡于京師,勉強(qiáng)度日……《史記·corelito列傳》
            posts - 8, comments - 15, trackbacks - 0, articles - 0

            使用V8——Google Chrome 的 JavaScript 引擎(2)

            Posted on 2008-10-19 21:17 sufan 閱讀(2951) 評(píng)論(4)  編輯 收藏 引用 所屬分類(lèi): 翻譯
            全局模板(Global Template)
            首先,我們需要使用全局模板(Global Template)對(duì)我們所作的修改進(jìn)行控制:

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

            該語(yǔ)句創(chuàng)建了一個(gè)新的全局模板,這個(gè)模板能夠管理我們自己的上下文環(huán)境(context)和用戶自定義(customization)。由于在V8中,每個(gè)上下文環(huán)境都是獨(dú)立的,且能夠擁有自己的全局模板,所以這一點(diǎn)顯得很重要。在V8中,一個(gè)上下文環(huán)境實(shí)際上就是一個(gè)執(zhí)行環(huán)境,使得許多分開(kāi)的、相互之間沒(méi)有聯(lián)系的 JavaScript 應(yīng)用程序能夠運(yùn)行在一個(gè)V8實(shí)例之中。

            添加用戶自定義函數(shù)
            接下來(lái),我們可以添加一個(gè)名為“plus”的新函數(shù):

            // plus function implementation - Add two numbers
            v8::Handle<v8::Value> Plus(const v8::Arguments& args)

                unsigned 
            int A = args[0]->Uint32Value();
                unsigned 
            int B = args[1]->Uint32Value();
                
            return v8_uint32(A +  B);

            //...
            //associates plus on script to the Plus function
            global->Set(v8::String::New("plus"), v8::FunctionTemplate::New(Plus));

            這個(gè)函數(shù)需要接受一個(gè) const v8::Argument& 類(lèi)型的值作為參數(shù),并且要返回一個(gè) v8::Handle<v8::Value>類(lèi)型的值。我們使用在前面創(chuàng)建的全局模板指針來(lái)增加一個(gè)函數(shù),并把“plus”和回調(diào)函數(shù)“Plus”聯(lián)系起來(lái)。當(dāng)我們每次在腳本程序中使用“plus”調(diào)用函數(shù)的時(shí)候,實(shí)際上調(diào)用的是我們?cè)谏厦娑x的“Plus”函數(shù),這個(gè)函數(shù)功能非常簡(jiǎn)單:獲取第一個(gè)和第二個(gè)參數(shù)并返回它們的和。

            好了,現(xiàn)在我們就可以在腳本中使用這個(gè)用戶自定義函數(shù)了:

            plus(120,44);

            還能這樣使用這個(gè)函數(shù)的返回值:

            = plus(1,2); 
            if( x == 3){
               
            // do something important here!
            }

            Feedback

            # re: 使用V8——Google Chrome 的 JavaScript 引擎(2)  回復(fù)  更多評(píng)論   

            2008-10-26 14:47 by 金山詞霸2008
            Google Chrome 的 JavaScript難道還和標(biāo)準(zhǔn)的javascript不一樣?記得javascript已經(jīng)是標(biāo)準(zhǔn)了。

            # re: 使用V8——Google Chrome 的 JavaScript 引擎(2)  回復(fù)  更多評(píng)論   

            2008-11-26 11:02 by tJun
            V8 implements ECMAScript as specified in ECMA-262, 3rd edition
            標(biāo)準(zhǔn)是標(biāo)準(zhǔn),實(shí)現(xiàn)是實(shí)現(xiàn)。

            # re: 使用V8——Google Chrome 的 JavaScript 引擎(2)  回復(fù)  更多評(píng)論   

            2008-11-26 11:06 by lola
            恩。v8是JS引擎啦,引擎是啥意思?引擎就是用來(lái)執(zhí)行JS代碼的東東啦。所以,v8是執(zhí)行JS的東東,不是JS標(biāo)準(zhǔn)。

            # re: 使用V8——Google Chrome 的 JavaScript 引擎(2)  回復(fù)  更多評(píng)論   

            2010-11-22 13:59 by swn
            請(qǐng)問(wèn)博主有沒(méi)有進(jìn)一步的研究v8,比如如何擴(kuò)展一個(gè)對(duì)象節(jié)點(diǎn),包括其下的方法屬性的擴(kuò)展呢?
            国内精品伊人久久久久777| 狠狠人妻久久久久久综合| yellow中文字幕久久网| 国内精品久久久久影院一蜜桃| 久久亚洲精品国产亚洲老地址| 人妻精品久久久久中文字幕| 久久有码中文字幕| 亚洲国产成人久久综合碰| 久久青青色综合| 狠狠色噜噜色狠狠狠综合久久| 伊人久久大香线焦AV综合影院| 午夜天堂av天堂久久久| 精品久久久久久无码专区不卡| 俺来也俺去啦久久综合网| 日本精品久久久久中文字幕8| 亚洲天堂久久精品| 久久天天日天天操综合伊人av| 伊人久久大香线蕉精品不卡| 日产精品久久久久久久| 国产精品禁18久久久夂久 | 93精91精品国产综合久久香蕉| 中文字幕一区二区三区久久网站 | 久久精品国产一区二区三区不卡| 国产精品激情综合久久| 亚洲国产成人久久精品99 | 97精品伊人久久久大香线蕉| 久久九九久精品国产免费直播| 伊人久久一区二区三区无码| 无码人妻精品一区二区三区久久| 中文字幕成人精品久久不卡| 午夜精品久久久久久影视riav | 77777亚洲午夜久久多喷| 狠狠色综合网站久久久久久久 | 女人高潮久久久叫人喷水| 精品国产乱码久久久久久呢 | 亚洲精品无码成人片久久| 夜夜亚洲天天久久| 麻豆亚洲AV永久无码精品久久| 93精91精品国产综合久久香蕉| 久久99热这里只有精品国产| 国产精品免费看久久久香蕉|