技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> JavaScript --> Javascript 类的实现

Javascript 类的实现

浏览:1924次  出处信息

最近在几个群上经常看到有人问在一个类里的一个 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了

建议继续学习:

  1. PHP内核介绍及扩展开发指南―类和对象    (阅读:3075)
  2. C++讲解    (阅读:2001)
  3. 简单工厂模式:计算器类    (阅读:1949)
  4. [Perl6]类, 属性, 方法和其它    (阅读:1616)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1