关于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()函数可以实现构造函数的功能了

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值