function Class1() { this.onclick = function(e) { for (var i=0; i < 1000; i++) { var a = new Date(); } }

}

使用this.的方法可 " /> 欧美一道本一区二区三区,妺妺窝人体色777777野大粗,亚洲精品久久久久久蜜臀

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JavaScript的面向?qū)ο蠓椒ㄒ约安顒e

第一種:使用this關(guān)鍵字

function Class1()
{
    this.onclick = function(e)
    {
        for (var i=0; i < 1000; i++)
        {
            var a = new Date();
        }
    } 



使用this.的方法可以很靈活地給對象添加屬性和方法,而且和大部分的OOP語言都相似,甚至在運(yùn)行中都可以添加。

第二種:使用prototype關(guān)鍵字

function clickFunc(e)
{
    for (var i=0; i < 1000; i++)
    {
        var a = new Date();
    }


function Class2()




Class2.prototype.onclick = clickFunc; 

這種用法上來講就沒有第一種顯得靈活。不過在一個(gè)對象new出來之前,也是一樣可以隨時(shí)添加一個(gè)對象的屬性和方法。

可是他們并不是相等的,相對來說,我更喜歡第一種,因?yàn)榈谝环N方法相對比較集中,比較容易閱讀代碼。但是在運(yùn)行的時(shí)候,他們運(yùn)行的效率卻差別相當(dāng)?shù)卮蟆R韵伦屛覀兛匆幌聹y試代碼吧:

var total = new Array(); 

function Test1()
{
    var a = new Date();
    for (var i=0; i < 10000; i++)
    {
        var c = new Class1();
        //total.push(c);
    }
    var b = new Date();
    alert(b.getTime()-a.getTime());


function Test2()
{
    var a = new Date();
    for (var i=0; i < 10000; i++)
    {
        var c = new Class2();
        //total.push(c);
    }
    var b = new Date();
    alert(b.getTime()-a.getTime());


第一步作執(zhí)行時(shí)間的測試:發(fā)現(xiàn)Test1()需要142ms,而Test2()僅需50ms.發(fā)現(xiàn)時(shí)間效率上來說,prototype的方法相對this來說,更加高效。 

第二步作內(nèi)存占用的測試,把total.push(c);這行的注釋去掉,之所以要把它們加入到數(shù)組里面去,防止創(chuàng)建的時(shí)候,對象比較多的時(shí)候,沒有被引用的對象被GC了。結(jié)果發(fā)現(xiàn)差距不是一般的大,第一種方法要占用二三十M的內(nèi)存,而第二種只需要一百多K。

成因推斷:
在處理這兩種代碼的時(shí)候,第一種,JS的解析器,給每個(gè)對象都創(chuàng)建一個(gè)單獨(dú)的方法,這樣增加了內(nèi)存的開銷,同時(shí)創(chuàng)建方法的時(shí)候,增加了運(yùn)行時(shí)間。第二種,JS的解析器和大部分的OOP編譯器一樣的,把對象的數(shù)據(jù)段和方法段分開存儲(chǔ)了,對于對象的私有數(shù)據(jù),則是每個(gè)對象一份,而這些方法,則是放在公共的方法段里,所以可以減少運(yùn)行時(shí)間和內(nèi)存的開銷。

JavaScript技術(shù)JavaScript的面向?qū)ο蠓椒ㄒ约安顒e,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产三区在线成人AV | 亚洲 欧美 中文 日韩 视频 | 国产婷婷午夜无码A片 | 仓井空torrent | 亚洲免费视频网站 | 一个人在线观看免费中文www | 美国一级黄色 | 中文人妻熟妇精品乱又伦 | 日本黄色成年人免费观看 | 日日摸天天添天天添无码蜜臀 | 99精品热视频30在线热视频 | 一本道手机无码在线看 | 亚洲精品久久久992KVTV | 亚洲男女羞羞无遮挡久久丫 | 国产又粗又黄又爽的大片 | 在线高清电影理论片4399 | 成人国产一区 | 欧美国产日韩久久久 | 国产精品日本欧美一区二区 | 伊人青青操 | 久久re这里视频只精品首页 | 亚洲青青青网伊人精品 | 麻生希第一部快播 | 美女脱精光让男生桶下面 | 少妇无码太爽了视频在线播放 | 真实处破女全过程完免费观看 | 亚洲国产成人一区二区在线 | 一区二区三区无码高清视频 | 手机精品在线 | 伊人久久国产免费观看视频 | 精品一区二区三区高清免费观看 | 无码国产成人午夜在线观看不卡 | 亚洲爆乳少妇精品无码专区 | 狠狠色狠狠色综合日日小说 | 中文字幕无码他人妻味 | 午夜福到在线4国产 | 青青热久久综合网伊人 | 亚洲 综合 欧美在线视频 | 在线播放日韩欧美亚洲日本 | 久久大香萑太香蕉av | 含羞草影院免费区 |