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 相关文章推荐
jquery中的过滤操作详细解析
Dec 02 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
动态设置form表单的action属性的值的简单方法
May 25 Javascript
大型JavaScript应用程序架构设计模式
Jun 29 Javascript
完美解决axios跨域请求出错的问题
Feb 05 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
Nov 30 Javascript
js中对象与对象创建方法的各种方法
Feb 27 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使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
JavaScript中的作用域链和闭包
2012/06/30 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
python解析yaml文件过程详解
2019/08/30 Python
Django配置文件代码说明
2019/12/04 Python
python中可以声明变量类型吗
2020/06/18 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
教师见习期自我鉴定
2014/04/28 职场文书
广播节目策划方案
2014/05/23 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
MySQL 服务和数据库管理
2021/11/11 MySQL
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS