關於js中類的概念

js不是面向對象的語言,函數和類都是用function來定義的。

 

定義類的方法也有很多種:

1.工廠方法:

  function person()

  {

      var tempperson = new object;

      tempperson.name = "jack";

      tempperson.sex = "man";

      tempperson.showperson = function{alert(this.name+this.sex);};

      return tempperso

  }

 

  var preson1 = person();

  var preson2 = person();

 

2.構造函數

 

 function Person()

  {

      this.name = "jack";

      this.sex = "man";

      this.showperson = function{alert(this.name+this.sex);};

  }

 

  var preson1 = new person();

  var preson2 = nwe person();

 

3.使用prototype屬性

 

  function Person()

  {

 

  }

  Person.prototype.name = "jack";

  Person.prototype.sex = "man";

  Person.prototype.showperson = function{alert(this.name+this.sex);};

 

  var preson1 = new person();

  var preson2 = nwe person();

 

4.混合工廠模式

function Person()

  {

      this.name = "jack";

      this.sex = "man";

  }

 

  Person.prototype.showperson = function{ alert(this.name+this.sex); };

 

  var preson1 = new person();

  var preson2 = nwe person();

 

5.動態原型模式

function Person()

  {

      this.name = "jack";

      this.sex = "man";

      if (typeof Person._initlialized == "undefined")

      {

        Person.prototype.showperson = function{ alert(this.name+this.sex); };

      }

    Person._initliazed = true;

  }

 

  Person.prototype.showperson = function{ alert(this.name+this.sex); };

 

  var preson1 = new person();

  var preson2 = nwe person();

 

6.類中的公有私有屬性

function Person ()

{

    var name = "jack";----私有屬性

    var sex = "man";

    this.Xname = "jack";----公有屬性

    this.Ysex = "man";

}

Person.name  是不能訪問的。

Person.Xname 是可以訪問的。

 

7.js中的構造函數,靜態方法和靜態屬性

 

function Person (fname, fsex)

    var _this = this;

    var name = "";----私有屬性

    var sex = "";

    _this.Xname = "";----公有屬性

    _this.Ysex = "";

    var init=function() ----私有方法

    {

       name = fname;

       sex = fsex;

       _this.Xname = fname;

       _this.Ysex = fsex;

    }

 init();

}

Person.count=0;---靜態屬性;

Person.getname =function(){}; ---靜態方法;

 

通過init()函數可以實現構造函數的功能了

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章