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

这次我们直接看例子:


代码如下:

/***定义静态类***/
var StaticClass = (function(){
var Return = {
Property: "Test Static Property", //公有属性
Method: function(){ //公有方法
alert(_Field); //调用私用字段
privateMethod(); //调用私用方法
}
}; //定义返回的公有对象
var _Field = "Test Static Field"; //私有字段
var privateMethod = function(){ //私有方法
alert(Return.Property); //调用属性
}
return Return; //生成公有静态元素
})();

这次,我用的是闭包的方式去实现,其中最重要的一点是reutrn Return; 这里会引伸到值类型与引用类型的概念。在js里,Object就是一个引用类型,在闭包里,我会抛出一个包含有属性与方法的Object的引用,这样,也可以说是把这个Object抛向了外部,实现了公开。StaticClass这个变量接住了Return引用。 对于闭包内部的私有字段与方法都是没有被抛出的,这样就可以形成一个私有的环境。
很多时候我们都会用这种技巧去对JS进行分块,让程序不会那么的混乱。
上面的例子没这么干过的兄弟们也可以自己去试试。忘了,刚刚那个例子大家可以这么样去试试。


代码如下:

StaticClass.Method();
StaticClass.Property = "Test2";
StaticClass.Method();

一个人能够走多远,取决于与谁同行

(0)

相关推荐

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

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

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

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

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

  • 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

随机推荐