91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么淺析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

泸西县| 襄汾县| 石狮市| 姜堰市| 莱州市| 宝应县| 左权县| 甘谷县| 铜梁县| 绥中县| 会理县| 沂水县| 商南县| 罗源县| 双桥区| 平陆县| 崇文区| 增城市| 正宁县| 迁安市| 揭东县| 富平县| 故城县| 建平县| 永宁县| 和田县| 崇阳县| 平乐县| 湖口县| 四平市| 河西区| 吴堡县| 龙口市| 安塞县| 南昌市| 江孜县| 茂名市| 五原县| 崇左市| 吕梁市| 蒙城县|