Javascript 类的实现

最近温习js面向对象,刚好看到这篇文章,比较好理解,转过来。


最近在几个群上经常看到有人问在一个类里的一个 function 怎么调用 this.  定义后公开的方法。现发一篇类实现的随笔。

首先说说类,在一个类里我们会有以下的几个特征:

1. 公有方法

2. 私有方法

3. 属性

4. 私有变量

5. 析构函数

我们直接看一个例子:

/***定义类***/
var Class = function(){
    var _self = this;//把本身引用负值到一变量上

    var _Field = "Test Field"; //私有字段
    var privateMethod = function(){ //私有方法
        alert(_self.Property); //调用属性
    }

    this.Property = "Test Property"; //公有属性
    this.Method = function(){ //公有方法
        alert(_Field); //调用私用字段
        privateMethod(); //调用私用方法
    }
}

这里我已把注释都写上,大家大概也会一眼就看得明白。对于少写JS的朋友,可能会觉得奇怪为什么我会定义一个_self的变量, 因为在js里,this不用对于其他的对象语言,他的解析过程与运行过程中this会改变的。这里简单说说js里this的定义,若有需要我可以开多一篇。

定义:this是包含它的函数作为方法被调用时所属的对象。

特征:this的环境可以随着函数被赋值给不同的对象而改变!

有兴趣的朋友可以网上找找资料了解一下,说回正题,这里的_self目的是为了开多一个私有的变量,把引用直接指向类的本身。

刚刚还说到一个析构函数的问题,这可以直接用代码来实现。在函数的最后直接写执行代码就OK。

/***定义类***/
var Class = function(){
    var _self = this;//把本身引用负值到一变量上

    var _Field = "Test Field"; //私有字段
    var privateMethod = function(){ //私有方法
        alert(_self.Property); //调用属性
    }

    this.Property = "Test Property"; //公有属性
    this.Method = function(){ //公有方法
        alert(_Field); //调用私用字段
        privateMethod(); //调用私用方法
    }

    /***析构函数***/
    var init = function(){
        privateMethod();
    }
    init();
}

使用这个类
var c = new Class();
c.Method(); //使用方法
这样就OK了

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《Javascript 类的实现


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值