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


Posted in Javascript onApril 02, 2010

这次我们直接看例子:

/***定义静态类***/ 
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 相关文章推荐
div移动 输入框不能输入的问题
Nov 19 Javascript
JavaScript 页面坐标相关知识整理
Jan 09 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
Mar 09 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
Mar 09 Javascript
IE8 中使用加速器(Activities)
May 14 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 Javascript
JavaScript中继承用法实例分析
May 16 Javascript
JavaScript中用于生成随机数的Math.random()方法
Jun 15 Javascript
js使用xml数据载体实现城市省份二级联动效果
Nov 08 Javascript
详解Vue项目部署遇到的问题及解决方案
Jan 11 Javascript
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 Javascript
js canvas实现星空连线背景特效
Nov 01 Javascript
用js实现计算加载页面所用的时间
Apr 02 #Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 #Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 #Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 #Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 #Javascript
js 刷新页面的代码小结 推荐
Apr 02 #Javascript
JQuery 插件制作实践 xMarquee插件V1.0
Apr 02 #Javascript
You might like
php堆排序实现原理与应用方法
2015/01/03 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
浅谈vue项目优化之页面的按需加载(vue+webpack)
2017/12/11 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
解决vue-router路由拦截造成死循环问题
2020/08/05 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
python实现的汉诺塔算法示例
2019/10/23 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
2020/01/22 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
基于PyTorch中view的用法说明
2021/03/03 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
美术专业个人自我评价
2014/01/18 职场文书
通信研究生自荐信
2014/02/01 职场文书
村干部培训方案
2014/05/02 职场文书
班风口号
2014/06/18 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript
Linux安装apache服务器的配置过程
2021/11/27 Servers
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android