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 相关文章推荐
学习ExtJS TextField常用方法
Oct 07 Javascript
php gethostbyname获取域名ip地址函数详解
Jan 24 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
javascript 防止刷新,后退,关闭
Aug 07 Javascript
jQuery实用基础超详细介绍
Apr 11 Javascript
js实现缓冲运动效果的方法
Apr 10 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
Feb 26 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 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
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
深入探究node之Transform
2017/07/20 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Django发送邮件功能实例详解
2019/09/02 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
python实现超市商品销售管理系统
2019/10/25 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
生活部的活动方案
2014/08/19 职场文书
学习退步检讨书
2014/09/28 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
公务员政审材料
2014/12/23 职场文书
期中考试后的感想
2015/08/07 职场文书
《活见鬼》教学反思
2016/02/24 职场文书