Javascript 类的实现

来源:互联网 发布:iphone手机倒计时软件 编辑:程序博客网 时间:2024/05/21 17:01

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

0 0
原创粉丝点击