国产探花免费观看_亚洲丰满少妇自慰呻吟_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;};}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉木萨尔县| 宁德市| 宜君县| 唐河县| 武鸣县| 额尔古纳市| 湘西| 东辽县| 长宁县| 疏勒县| 巴彦县| 宜都市| 四会市| 上杭县| 遵化市| 华池县| 盐亭县| 黄冈市| 新干县| 安远县| 阜平县| 偃师市| 内江市| 黄大仙区| 仁怀市| 蓝田县| 南木林县| 营口市| 芜湖县| 鸡西市| 达拉特旗| 镇平县| 牙克石市| 大同县| 济阳县| 津南区| 永安市| 花莲市| 南澳县| 四川省| 堆龙德庆县|