欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中使用使用原型(prototype)定義方法的好處詳解

 更新時(shí)間:2016年07月04日 09:07:16   投稿:jingxian  
下面小編就為大家?guī)硪黄猨s中使用使用原型(prototype)定義方法的好處詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

經(jīng)常在前端面試或是和其他同行溝通是,在談到構(gòu)造在JS定義構(gòu)造函數(shù)的方法是最好使用原型的方式:將方法定義到構(gòu)造方法的prototype上,這樣的好處是,通過該構(gòu)造函數(shù)生成的實(shí)例所擁有的方法都是指向一個(gè)函數(shù)的索引,這樣可以節(jié)省內(nèi)存。

當(dāng)然,這種說法沒有任何問題,只是在實(shí)現(xiàn)上,并非只有使用prototype的方式才能達(dá)到這樣的效果,我們可以將方法以函數(shù)的形式定義在構(gòu)造函數(shù)之外,然后在構(gòu)造函數(shù)中通過this.method = method的方式,這樣生成的實(shí)例的方法也都通過索引指向一個(gè)函數(shù),具體如下:

// 不使用原型定義方法:
(function() {
  function Constractor() {
    this.method1 = method1;
    this.method2 = method2;
  }

  function method1() {
  }

  function method2() {
  }
})();

一般使用原型定義時(shí)代碼如下:

(function () {
  function Constractor() {
  }

  Constactor.prototype = {
    method1: function() {
    },
    method2: function() {
    }
  };
  
  // 或者
  Constactor.prototype.method1 = function() {
  };
  Constactor.prototype.method2 = function() {
  };

})();

理論和實(shí)現(xiàn)都沒有什么高深的,只是為了達(dá)到同樣的目的,可以通過不同的途徑,只是此種方式在使用instanceOf運(yùn)算符來判斷繼承關(guān)系時(shí)就不奏效了。

以上這篇js中使用使用原型(prototype)定義方法的好處詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論