最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用JavaScript定義一個類

 更新時間:2014年09月12日 10:46:42   投稿:hebedich  
其實Javascript中沒有類這個定義,但是有類這個概念。很多人都寫過這樣的代碼,就是一個關鍵字 function,然后定義一個方法名,方法名后緊跟一對括號。如果你在項目中寫過這樣的代碼,那么祝賀你,你可以不費任何吹毛之力,就能一口氣讀完這篇文章了。

我原來的寫法都是這樣:

function Dog(){
  this.name = 'hachi';
}

Dog.prototype = {
  makeNoise:function(){
    alert('wangwangwang');
  }
};

后來又看到另外一種復雜一點而且看起來好像沒有必要的寫法:

function Dog(){
  var privateVariable = 'secret';

  var fn = function(){
    //...
  }

  fn.prototype = {
    makeNoise:function(){
      alert('wangwangwang');
    }
  }

  return fn;
}

這里的Dog函數(shù)其實是一個 制造類 的函數(shù),它返回了真正的Dog類。
感覺這樣做的好處是更好的實現(xiàn)了封裝。
例如這里的privateVariable就是一個私有變量:

var d = new Dog;
d.privateVariable //undefined

另外如果在第一個例子的最后加上一句:

Dog.prototype = {
  //e...WTF??
}

這樣Dog就不是Dog了~

后來的理解:
上面這樣新建類的方法直接重寫了prototype對象。這樣prototype原本內置的屬性就沒有了(arguments, call, apply等)。
下面這種新建類的方法好像更好一些:

var Dog = function(name){
  this.name = name;
  var privateVariable = 'you cannot see me.';
  this.getPrivate = function(){return privateVariable;};
}

相關文章

  • 一個JavaScript變量聲明的知識點

    一個JavaScript變量聲明的知識點

    JavaScript變量聲明很簡單,但是這里也有要學習的知識點,對于JavaScript基礎學習很重要。
    2013-10-10
  • 淺析JavaScript異步代碼優(yōu)化

    淺析JavaScript異步代碼優(yōu)化

    這篇文章主要介紹了JavaScript異步代碼優(yōu)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • JavaScript lastIndexOf方法入門實例(計算指定字符在字符串中最后一次出現(xiàn)的位置)

    JavaScript lastIndexOf方法入門實例(計算指定字符在字符串中最后一次出現(xiàn)的位置)

    這篇文章主要介紹了JavaScript字符串對象的lastIndexOf方法入門實例,lastIndexOf方法用于計算指定字符在字符串中最后一次出現(xiàn)的位置,需要的朋友可以參考下
    2014-10-10
  • 深入理解JavaScript系列(45):代碼復用模式(避免篇)詳解

    深入理解JavaScript系列(45):代碼復用模式(避免篇)詳解

    這篇文章主要介紹了深入理解JavaScript系列(45):代碼復用模式(避免篇)詳解,本文講解了默認模式、借用構造函數(shù)、借用構造函數(shù)并設置原型、共享原型、臨時構造函數(shù)、klass等內容,需要的朋友可以參考下
    2015-03-03
  • JS數(shù)組(Array)處理函數(shù)整理

    JS數(shù)組(Array)處理函數(shù)整理

    這篇文章主要整理了一下JS數(shù)組(Array)處理函數(shù),常用的都匯總了一下,推薦給大家。
    2014-12-12
  • javascript事件綁定學習要點

    javascript事件綁定學習要點

    這篇文章主要介紹了javascript事件綁定學習要點,主要包含下面四個方面1.傳統(tǒng)事件綁定的問題,2.W3C事件處理函數(shù),3.IE事件處理函數(shù),4.事件對象的其他補充,有需要的小伙伴可以參考下
    2016-03-03
  • Javascript基礎教程之變量

    Javascript基礎教程之變量

    大家都知道javascript是可以隱式聲名變量的。但要注意,隱式聲名變量總是被創(chuàng)建為全局變量??匆韵麓a,情愿javascript語言強制聲明變量。建議大家一定要var聲明變量。
    2015-01-01
  • EsLint入門學習教程

    EsLint入門學習教程

    ESLint是一個代碼規(guī)范和錯誤檢查工具,下面這篇文章主要介紹了EsLint的相關資料,需要的朋友可以參考學習,下面來一起看看吧。
    2017-02-02
  • javascript編程起步(第二課)

    javascript編程起步(第二課)

    javascript編程起步(第二課)...
    2007-02-02
  • JS腳本defer的作用示例介紹

    JS腳本defer的作用示例介紹

    defer作用是文檔加載完畢了再執(zhí)行腳本,這樣回避免找不到對象的問題,下面有個不錯的示例,感興趣的朋友可以參考下
    2014-01-01

最新評論

鹤壁市| 乳山市| 鄂温| 社旗县| 东安县| 岢岚县| 东安县| 高尔夫| 白朗县| 清涧县| 修武县| 杭锦后旗| 海安县| 时尚| 吴旗县| 大余县| 永胜县| 翁牛特旗| 高邑县| 临夏市| 二连浩特市| 台南市| 阿坝县| 伽师县| 巴彦淖尔市| 九江市| 瓮安县| 丽江市| 资中县| 宣武区| 磴口县| 如东县| 阿合奇县| 苍南县| 新泰市| 云浮市| 海阳市| 万年县| 当涂县| 阿荣旗| 宜都市|