亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么淺析JavaScript的寫類方式

發布時間:2021-11-17 17:06:42 來源:億速云 閱讀:129 作者:柒染 欄目:web開發

怎么淺析JavaScript的寫類方式,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

這篇開始會記錄一些寫類的工具函數。以下列舉的有的是工作中碰到的,有的是從書籍或網上收集的。

構造函數 + 原型 直接組裝一個類;同一構造函數將組裝出同一類型

/**   * $class 寫類工具函數之一   * @param {Function} constructor   * @param {Object} prototype   */ function $class(constructor,prototype) {      var c = constructor || function(){};      var p = prototype || {};      c.prototype = p;      return c;  }

用構造函數來生成類實例的屬性(字段),原型對象用來生成類實例的方法。

//構造函數  function Person(name) {      this.name = name;  }  //原型對象  var proto = {      getName : function(){return this.name},      setName : function(name){this.name = name;}   }  //組裝  var Man = $class(Person,proto);  var Woman = $class(Person,proto);

這時候已經得到了兩個類Man,Woman。并且是同一個類型的。測試如下:

console.log(Man == Woman); //true  console.log(Man.prototype == Woman.prototype); //true

創建對象看看

var man = new Man("Andy");  var woman = new Woman("Lily");   console.log(man instanceof Man); //true  console.log(woman instanceof Woman); //true  console.log(man instanceof Person); //true  console.log(woman instanceof Person); //true

ok,一切如我們所期望。但是有個問題,下面代碼的結果輸出false

console.log(man.constructor == Person);//false<br>

這讓人不悅:從以上的代碼看出man的確是通過Man類new出來的 var man = new Man("Andy"),那么對象實例man的構造器應該指向Man,但為何事與愿違呢?

原因就在于$class中重寫了Person的原型:c.prototype = p;

好了,我們把$class稍微改寫下,將方法都掛在構造器的原型上(而不是重寫構造器的原型),如下:

function $class(constructor,prototype) {      var c = constructor || function(){};      var p = prototype || {};  //  c.prototype = p;      for(var atr in p){          c.prototype[atr] = p[atr];      }         return c;  }

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濉溪县| 青河县| 潼南县| 榕江县| 河北省| 泰来县| 西乡县| 即墨市| 菏泽市| 土默特右旗| 江城| 海林市| 阿拉善左旗| 大余县| 盐城市| 曲阳县| 连州市| 兰西县| 灌阳县| 庄河市| 富顺县| 汝城县| 蓬莱市| 玉田县| 仁布县| 巧家县| 遂宁市| 潼关县| 莫力| 新龙县| 长宁县| 弥渡县| 忻州市| 辽阳市| 昭通市| 德格县| 莒南县| 镇江市| 东乡| 桂阳县| 辽中县|