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

首頁 > 編程 > JavaScript > 正文

如何用JavaScript定義一個類

2019-11-20 14:09:08
字體:
來源:轉載
供稿:網友

我原來的寫法都是這樣:

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;};}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高阳县| 霍林郭勒市| 阿鲁科尔沁旗| 右玉县| 壶关县| 本溪市| 萍乡市| 闽侯县| 武威市| 东山县| 清新县| 山阴县| 四子王旗| 舞阳县| 乐业县| 大足县| 修水县| 溧水县| 海丰县| 增城市| 当涂县| 高平市| 鹰潭市| 黎平县| 修水县| 南川市| 于田县| 黔西| 睢宁县| 泰宁县| 新宾| 宝应县| 大余县| 嵊州市| 靖安县| 长阳| 金门县| 邹城市| 郑州市| 绥德县| 来凤县|