Javascript 类与静态类的实现

今天所要说的就是,如何在Javascript里写类与静态类,这是本人一惯用的方法,你也可以有更为方便的,也可以发发评论跟大家交流交流。
首先说说类,在一个类里我们会有以下的几个特征:
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();
这样就OK
类的定义就说完了,静态类,要等到下一次了。因为有MM叫我去喝茶
一个人能够走多远,取决于与谁同行

(0)

相关推荐

  • 分享一个常用的javascript静态类

    废话不多说,直接奉上代码,知道干啥用的小伙伴直接带走吧. 复制代码 代码如下: util=function(){     return {         $:function(id){             return document.getElementById(id);         },         trim:function(str){             return str.replace(/(^\s+)|(\s+$)/g, "");         },

  • Javascript 类与静态类的实现(续)

    这次我们直接看例子: 复制代码 代码如下: /***定义静态类***/ var StaticClass = (function(){ var Return = { Property: "Test Static Property", //公有属性 Method: function(){ //公有方法 alert(_Field); //调用私用字段 privateMethod(); //调用私用方法 } }; //定义返回的公有对象 var _Field = "Test Stat

  • 关于javascript的“静态类"

    (以下问题仅针对javascript而提,请注意,如果连说法都有问题,请笑过就行)  1.什么是 静态类/伪静态类 2.javsscript中书写静态类的语法是怎么样的?(包括数组,常量啊什么的,要完全)  3.就您的解释给一个简单的例子  关键是第二条,其他的可以不说  静态类就是顶级类  比如Math类  说的通透点其实就是全局变量,只不过这个变量不是你自己定义的 而是JS自己定义好的  你只管用就行了 不如用Math类根本就不用创照对象  假如你想求一个圆的面积 只须这样 s=Math.P

  • JavaScript面向对象之静态与非静态类

    直到有那么一天,我开始在js中拼凑DOM标签,而且需要不停的拼凑,我发现我的代码变得愈发的丑陋,不仅上是代码简洁的问题,甚至有时候还引发了性能问题.长此以往,不出三个月,上帝都将会不知道我写过些什么,本篇的目的完全出于记录使用心得. 首先,还是来看一下促使我改变书写JavaScript习惯的垃圾代码,在练习.测试.调试.甚至正式项目中,大量的充斥着下面的代码. 复制代码 代码如下: Function finduser(userId) { } Function showmessage(msg) {

  • Javascript 类与静态类的实现

    今天所要说的就是,如何在Javascript里写类与静态类,这是本人一惯用的方法,你也可以有更为方便的,也可以发发评论跟大家交流交流. 首先说说类,在一个类里我们会有以下的几个特征: 1. 公有方法 2. 私有方法 3. 属性 4. 私有变量 5. 析构函数 我们直接看一个例子: 类例子 复制代码 代码如下: /***定义类***/ var Class = function(){ var _self = this;//把本身引用负值到一变量上 var _Field = "Test Field&q

  • javascript 面向对象的JavaScript类

    在上一节面 JavaScript 面向对象之命名空间 中说了怎么定义JavaScript命名空间,这一节来说下紧接着的一个概念--类.虽然JavaScript中没有class关键字,但作为开发人员我们一定要有这个思想.在C#中类可以分为实例类和静态类,JavaScript亦然. 一,定义实例类: 在上节中我定义了一个cnblogs.news的命名空间,现在就在此命名空间下定义一个名为Article类: 复制代码 代码如下: cnblogs.news.Article=function(){ var

  • JavaScript 类的封装操作示例详解

    本文实例讲述了JavaScript 类的封装操作.分享给大家供大家参考,具体如下: 一,首先,为什么要使用封装? 这是从信息的角度出发的,信息的隐藏是最终的目的,而封装只不过是实现隐藏的一种方法. 这里我们需要明白一点就是:类的定义有如下的三种方式: (第一种)门户大开型方式       (第二种)用命令规范区别私有和公有的方式    (第三种)闭包 现在详细描述一下每一种类的定义方式: 针对第一种,门户大开类型 首先,我们来看一种情况 (1)声明一个简单的类,代码如下 function Per

  • 一个简单的javascript类定义例子

    复制代码 代码如下: <script> //定义一个javascript类 function JsClass(privateParam/* */,publicParam){//构造函数 var priMember = privateParam; //私有变量 this.pubMember = publicParam; //公共变量 //定义私有方法 function priMethod(){ return "priMethod()"; } //定义特权方法 //特权方法可以

  • javascript 类和命名空间的模拟代码

    先上一段最简单的: 复制代码 代码如下: // 以下几行代码展示了命名空间.类.以及函数的模拟定义和使用: NameSpace = {}; NameSpace.Class = function(){ this.Method = function(info){alert(info);} }; new NameSpace.Class().Method("Hello world"); 再来一些可见到的,各种情况的代码 1.类的模拟 复制代码 代码如下: // 类定义 function Cla

  • 非常不错的一个javascript 类

    非常不错的一个javascript 类 复制代码 代码如下: /*    *  Author:aoao  *    Homepage:http://www.loaoao.com  *  Email:loaoao@gmail.com / QQ:2222342  *  Copyright (c) 2006 aoao  *  Licensed under a Creative Commons Attribution 2.5 License (http://creativecommons.org/lic

  • 在Javascript类中使用setTimeout第1/2页

    最近遇到了一道 Javascript 考题,内容如下: 尝试实现注释部分的 Javascript 代码,可在其他任何地方添加更多 代码(如不能实现,说明一下不能实现的原因): var Obj = function(msg){    this.msg = msg;    this.shout = function(){       alert(this.msg);    } this.waitAndShout = function(){       // 隔五秒钟后执行上面的 shout 方法  

  • 介绍一个简单的JavaScript类框架

    在写work-in-progress JavaScript book一书时,对于javascript继承体系,我花费了相当的时间,并在该过程中研究了各种不同的模拟经典类继承的方案.这些技术方案中,我最为推崇的是base2与Prototype的实现. 从这些方案中,应该能提炼出一个具有其思想内涵的框架,该框架须具有简单.可重用.易于理解并无依赖等特点,其中简单性与可用性是重点.以下是使用示例: var Person = Class. extend ( { init: function (isDan

  • JavaScript类继承及实例化的方法

    本文实例讲述了JavaScript类继承及实例化的方法.分享给大家供大家参考.具体如下: (function(){ var Class = { //扩展类 create: function(aBaseClass, aClassDefine){ var $class = function(){ for(var member in aClassDefine){ this[member] = aClassDefine[member]; } if('undefined'===typeof aClassD

随机推荐