婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > JavaScript面向對象的兩種書寫方法以及差別

JavaScript面向對象的兩種書寫方法以及差別

熱門標簽:調度系統外呼 宜賓語音外呼系統軟件 伊春外呼業務系統 福建外呼增值業務線路 河北智能外呼系統軟件 中國辦理電信400電話 綿陽防封電銷卡價格 電銷機器人教育 電銷機器人源碼網盤下載
javascript中的對象JS作為一種動態語言,在語法上有相當大的自由度,所以造成了一種功能,有N種寫法的局面。

在JS中實現OOP,一般來說有兩種方法:

第一種:使用this關鍵字

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



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

第二種:使用prototype關鍵字

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


function Class2()




Class2.prototype.onclick = clickFunc; 

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

可是他們并不是相等的,相對來說,我更喜歡第一種,因為第一種方法相對比較集中,比較容易閱讀代碼。但是在運行的時候,他們運行的效率卻差別相當地大。以下讓我們看一下測試代碼吧:

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());


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

javascript的對象第二步作內存占用的測試,把total.push(c);這行的注釋去掉,之所以要把它們加入到數組里面去,防止創建的時候,對象比較多的時候,沒有被引用的對象被GC了。結果發現差距不是一般的大,第一種方法要占用二三十M的內存,而第二種只需要一百多K。
javascript創建對象
成因推斷:
在處理這兩種代碼的時候,第一種,JS的解析器,給每個對象都創建一個單獨的方法,這樣增加了內存的開銷,同時創建方法的時候,增加了運行時間。第二種,JS的解析器和大部分的OOP編譯器一樣的,把對象的數據段和方法段分開存儲了,對于對象的私有數據,則是每個對象一份,而這些方法,則是放在公共的方法段里,所以可以減少運行時間和內存的開銷。
您可能感興趣的文章:
  • JavaScript面向對象編程
  • 不錯的JavaScript面向對象的簡單入門介紹
  • JS面向對象、prototype、call()、apply()
  • javascript 面向對象全新理練之數據的封裝
  • Javascript 面向對象(一)(共有方法,私有方法,特權方法)
  • JS左右無縫滾動(一般方法+面向對象方法)
  • jquery方法+js一般方法+js面向對象方法實現拖拽效果
  • javascript面向對象入門基礎詳細介紹
  • 學習javascript面向對象 理解javascript對象

標簽:電商邀評 新鄉 優質小號 河池 銅川 那曲 延邊 蘇州

巨人網絡通訊聲明:本文標題《JavaScript面向對象的兩種書寫方法以及差別》,本文關鍵詞  JavaScript,面向,對象,的,兩種,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JavaScript面向對象的兩種書寫方法以及差別》相關的同類信息!
  • 本頁收集關于JavaScript面向對象的兩種書寫方法以及差別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 永春县| 伊金霍洛旗| 灵宝市| 漳浦县| 平谷区| 沁水县| 灵石县| 青河县| 漳州市| 兴义市| 郧西县| 奉贤区| 郴州市| 巴南区| 泸西县| 饶阳县| 兴山县| 石河子市| 遂平县| 子长县| 西藏| 广平县| 定远县| 垫江县| 秭归县| 扬州市| 宜黄县| 曲靖市| 夏津县| 故城县| 兴安县| 时尚| 平武县| 阿拉尔市| 湖口县| 宁南县| 三穗县| 黄龙县| 苍山县| 永善县| 兰考县|