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();
一个人能够走多远,取决于与谁同行
相关推荐
-
JavaScript面向对象之静态与非静态类
直到有那么一天,我开始在js中拼凑DOM标签,而且需要不停的拼凑,我发现我的代码变得愈发的丑陋,不仅上是代码简洁的问题,甚至有时候还引发了性能问题.长此以往,不出三个月,上帝都将会不知道我写过些什么,本篇的目的完全出于记录使用心得. 首先,还是来看一下促使我改变书写JavaScript习惯的垃圾代码,在练习.测试.调试.甚至正式项目中,大量的充斥着下面的代码. 复制代码 代码如下: Function finduser(userId) { } Function showmessage(msg) {
-
关于javascript的“静态类"
(以下问题仅针对javascript而提,请注意,如果连说法都有问题,请笑过就行) 1.什么是 静态类/伪静态类 2.javsscript中书写静态类的语法是怎么样的?(包括数组,常量啊什么的,要完全) 3.就您的解释给一个简单的例子 关键是第二条,其他的可以不说 静态类就是顶级类 比如Math类 说的通透点其实就是全局变量,只不过这个变量不是你自己定义的 而是JS自己定义好的 你只管用就行了 不如用Math类根本就不用创照对象 假如你想求一个圆的面积 只须这样 s=Math.P
-
分享一个常用的javascript静态类
废话不多说,直接奉上代码,知道干啥用的小伙伴直接带走吧. 复制代码 代码如下: util=function(){ return { $:function(id){ return document.getElementById(id); }, trim:function(str){ return str.replace(/(^\s+)|(\s+$)/g, ""); },
-
Javascript 类与静态类的实现
今天所要说的就是,如何在Javascript里写类与静态类,这是本人一惯用的方法,你也可以有更为方便的,也可以发发评论跟大家交流交流. 首先说说类,在一个类里我们会有以下的几个特征: 1. 公有方法 2. 私有方法 3. 属性 4. 私有变量 5. 析构函数 我们直接看一个例子: 类例子 复制代码 代码如下: /***定义类***/ var Class = function(){ var _self = this;//把本身引用负值到一变量上 var _Field = "Test Field&q
-
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
随机推荐
- Python下singleton模式的实现方法
- VB语言使用ADO连接、操作SQLServer数据库教程
- 深入理解jQuery之防止冒泡事件
- 浅谈Vue.js中的v-on(事件处理)
- JS实现最简单的冒泡排序算法
- Javascript堆排序算法详解
- js模拟弹出效果代码修正版
- Ubuntu系统安装Ruby的三种方法
- IOS开发OC代码中创建Swift编写的视图控制器
- TreeView创建IHierarchicalDataSource类型的数据源实现
- js的延迟执行问题分析
- PHP多线程抓取网页实现代码
- PHP的curl实现get,post和cookie(实例介绍)
- C++版本简易Flappy bird
- Vue.js -- 过滤器使用总结
- MySQL无法启动1067错误的又一种解决方法(机房断电)
- 在HTML中插入JavaScript代码的示例
- jquery.post用法示例代码
- easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
- Android仿微信支付密码弹出层功能