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 相关文章推荐
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
克隆javascript对象的三个方法小结
Jan 12 Javascript
DOM基础教程之使用DOM + Css
Jan 20 Javascript
jQuery Dialog对话框事件用法实例分析
May 10 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
Oct 26 Javascript
axios中cookie跨域及相关配置示例详解
Dec 20 Javascript
聊聊JS动画库 Velocity.js的使用
Mar 13 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
Nov 02 Javascript
微信小程序HTTP接口请求封装的实现
Feb 21 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 Javascript
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
用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自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
Python中的Django基本命令实例详解
2018/07/15 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python列表使用实现名字管理系统
2019/01/30 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
Python中Qslider控件实操详解
2021/02/20 Python
建筑项目策划书
2014/01/13 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
2015年仓库工作总结
2015/04/09 职场文书
2015年测量员工作总结
2015/05/23 职场文书
南极大冒险观后感
2015/06/05 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
python实现自动清理文件夹旧文件
2021/05/10 Python
mysql中整数数据类型tinyint详解
2021/12/06 MySQL