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

}

使用this.的方法可 " /> 一区二区三区视频网站,亚洲a√,国产精品99精品久久免费

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

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

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



使用this.的方法可以很靈活地給對(duì)象添加屬性和方法,而且和大部分的OOP語(yǔ)言都相似,甚至在運(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; 

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

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

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í)間的測(cè)試:發(fā)現(xiàn)Test1()需要142ms,而Test2()僅需50ms.發(fā)現(xiàn)時(shí)間效率上來(lái)說(shuō),prototype的方法相對(duì)this來(lái)說(shuō),更加高效。 

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

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

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

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

主站蜘蛛池模板: 性感男模| 蜡笔小新日语| 贴身保镖完整电影| 美妙天堂第三季| 外出韩版| 姿metcn张筱雨人体1| 日本电影小小的家| 杨门女将一级裸片免费观看| 朴允载| xiuren秀人网最新地址| 电视剧零下三十八度演员表| 爱在记忆中找你歌词| 打男孩光屁股| 柳堡的故事演员表| 无懈可击图片| 黄姓的研究报告怎么写| 章子怡付出最大的电影是什么| monparis是什么牌子香水| 卧虎演员表| 电影生化危机4| 汽球造型| 黄视频下载| 被抛弃的青春1982| 那些花儿吉他谱原版| 红灯区未删减版| 纽约巨人| 工会会员登记表个人简历填写| 美女自卫网站| 风雨丽人 电视剧| 湖南卫视直播| 电影哪吒闹海| 成毅最新电视剧赴山海免费看| 容易失禁的女仆桃乃木香奈| srv| 白色噪音| 吻电影| 大森元贵| 黑暗洛普斯| 浙江卫视网络直播源| 好看的你懂的| 彭丹丹最惊艳的电影|