当前位置:  编程技术>WEB前端
本页文章导读:
    ▪js闭包      先从闭包特点解释,应该更好理解.闭包的两个特点:1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。其实.........
    ▪网页文字中间加横线      ......
    ▪开源 免费 java CMS - FreeCMS1.2-功能说明-会员组管理       下载地址:http://code.google.com/p/freecms/ 会员组管理 从FreeCMS 1.2 开始支持 会员组分为两种,一级是经验会员组,一种是特殊会员组。 经验会员组的会员会根据经验自动变更,特殊会.........

[1]js闭包
    来源:    发布时间: 2013-11-06
先从闭包特点解释,应该更好理解.

闭包的两个特点:

1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。
2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。

其实上面两点可以合成一点,就是闭包函数返回时,该函数内部变量处于激活状态,函数所在栈区依然保留.

我们所熟知的主流语言,像C,java等,在函数内部只要执行了return,函数就会返回结果,然后内存中删除该函数所在的区域.生命周期也就停止了.一般的js函数也是这样.
但是有闭包特性的js函数有点特殊.
就例子来说:
1 function a(){
2 var i=0;
3 function b(){
4 alert(++i);
5 }
6 return b;
7 }
8 var c = a();
9 c();
这是个标准的闭包.在函数a中定义了函数b,a又return了b的值.这些可以先不管.
var c = a();
c();
这两句执行很重要.
在var c = a();这行里,执行了a函数,那么肯定a经过了return.按照主流语言的函数特性,现在c的值就是a的返回值.
第二行c()的执行实际执行的就是b函数.最后不管执行的是谁,会弹出一个值为0的窗口,到此为止,所有的生命周期按理论来说就算全部结束了.
可是,如果我们再多执行一行.
var c = a();
c();
c();
第一次弹出0,第二次执行却弹出了1.

也就是说,第一次c()后,a中的i依然保留.自然a在内存的栈区依然保留.

a是return过了,但是,a及内部值却依然存在,这就是闭包.

好了,总结下,
1,闭包外层是个函数.
2,闭包内部都有函数.
3,闭包会return内部函数.
4,闭包返回的函数内部不能有return.(因为这样就真的结束了)
5,执行闭包后,闭包内部变量会存在,而闭包内部函数的内部变量不会存在.

闭包的应用场景(呵呵,复制的参考资料)
1、保护函数内的变量安全。以最开始的例子为例,函数a中i只有函数b才能访问,而无法通过其他途径访问到,因此保护了i的安全性。
2、在内存中维持一个变量。依然如前例,由于闭包,函数a中i的一直存在于内存中,因此每次执行c(),都会给i自加1。

根据参考资料的应用场景,我们会自然的想到java或是c++的类.虽然JS没有类的概念,但是有了类的相似执行结果.

另外,还有一种格式颇受争议:
(function(a,b))(a,b);
如果你使用过jquery,并且观察过他的代码,你就会很奇怪他的写法,网上有人也把这种格式叫做闭包.引用:http://www.cnblogs.com/rorchach/archive/2013/03/03/2941374.html

本文链接


    
[2]网页文字中间加横线
    来源: 互联网  发布时间: 2013-11-06

      网页文字中间加横线打杠比较简单, 有个非标的html标签可以用: <strike> 

     <strike>已经过期</strike> 显示就是: 已经过期

作者:ituff 发表于2013-3-4 11:08:06 原文链接
阅读:0 评论:0 查看评论

    
[3]开源 免费 java CMS - FreeCMS1.2-功能说明-会员组管理
    来源: 互联网  发布时间: 2013-11-06

下载地址:http://code.google.com/p/freecms/

会员组管理

从FreeCMS 1.2 开始支持

会员组分为两种,一级是经验会员组,一种是特殊会员组。

经验会员组的会员会根据经验自动变更,特殊会员组不会自动变更,需要管理员手工设置。

1. 会员组管理

从左侧管理菜单点击会员组进入。

2. 添加会员组

在会员组列表下方点击“添加”按钮。

填写相关属性后点击“保存”按钮即可。

3. 编辑会员组

选择需要编辑的会员组,然后点击“编辑”按钮。

注意:同时只能编辑一个会员组。

填写相关属性后点击“保存”按钮即可。

4. 会员组授权

选择需要授权的会员组,然后点击“授权”按钮。

注意:同时只能对一个会员组进行授权操作。

填写相关属性后点击“确定”按钮即可。

5. 删除会员组

选择需要删除的会员组,然后点击“删除”按钮。

提示:同时可以删除多个会员组。

为了防止误操作,系统会提示用户是否删除,点击“确定”完成删除操作。

作者:vkqiang 发表于2013-3-4 13:09:25 原文链接
阅读:0 评论:0 查看评论

    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3