国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

如何用JavaScript定義一個類

2024-05-06 16:08:47
字體:
來源:轉載
供稿:網友
其實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函數其實是一個 制造類 的函數,它返回了真正的Dog類。
感覺這樣做的好處是更好的實現了封裝。
例如這里的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;};}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 京山县| 定西市| 伊吾县| 怀仁县| 沅陵县| 漳平市| 玉山县| 衡山县| 微山县| 长宁县| 景洪市| 邳州市| 兴仁县| 侯马市| 迁安市| 连山| 保亭| 武乡县| 西乌珠穆沁旗| 如皋市| 祁东县| 洛扎县| 聂荣县| 弥勒县| 甘孜| 万荣县| 克拉玛依市| 手机| 米易县| 东明县| 东明县| 鹤山市| 监利县| 岳普湖县| 舒兰市| 惠来县| 华宁县| 金溪县| 新龙县| 油尖旺区| 拜城县|