闭包随记2

1、一般我们想使用一个自己定义的函数,定义个全局变量,给这个变量添加方法;

var dd={
    nq:function(){
        alert($(this))
    },
    ta:‘waa‘
}
    dd.qdz=function(){
        console.log($(this))
    };
    dd.a="www"

调用也很简单

$("#qq").click(function(){
    dd.nq()
})

但有很大麻烦,变量的污染问题

            dd.nq=function(){
                alert(‘我被重新定义了‘)
            }
            dd.ta=‘我也被重新定义了‘
            $("#qq").click(function(){
                    dd.nq()
                    alert(dd.ta)
                })

重新定义全局函数dd的属性时调用就不一样了。这涉及到栈内存和堆内存。

2、我们为了解决这个问题,我们使用闭包封装函数

            var a = (function() {
                function c() {
                    alert("cccc")
                }
                var b = 10;
                var d=11
                return{
                    b,
                    c
                }
            })();
            $("#qq").click(function(){
                    a.c()
                    alert(a.b)
                    alert(a.d)
                })

运行之后,先后弹出"cccc",10,underfind。上面的d是无法访问的,因为没有return出来。这样就非常好,把想要给外面看到的return出去,没有return出去的外面是无法访问到的。

时间: 2024-10-17 08:58:48

闭包随记2的相关文章

闭包随记3

(function($){ var mffunc=$.fn mffunc.fwdq=function(){ $(this).click(function(){ alert($(this).val()) }) } return mffunc })(jQuery) $("#qq").fwdq() 1.上面一段代码是利用闭包给JQ对象添加方法:我返回的是mffunc这个对象的整体.如果只想让外面调用fwdq这个方法不想返回mffunc对象的其他的变量怎么办:return mffunc.fwd

函数依赖集闭包、属性集闭包和最小函数依赖集的求法。

函数依赖集的闭包 F:FD的集合称为函数依赖集. F闭包:由F中的所有FD可以推导出所有FD的集合,记为F+. 例1,对于关系模式R(ABC),F={A→B,B→C},求F+. 根据FD的定义,可推出F+={φ→φ,A→φ,A→A,A→B,A→C,A→AB,A→BC,A→ABC,…},共有43个FD.其中,φ表示空属性集. 属性集闭包 属性集闭包定义 :对F,F+中所有X→A的A的集合称为X的闭包,记为X+.可以理解为X+表示所有X可以决定的属性. 属性集闭包的算法: A+:将A置入A+.对每一

数据库之闭包,范式

.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性.如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系.在第一范式(1NF)中表的每一行只包含一个实例的信息.简而言之,第一范式就是无重复的列. 说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库. 1

数据库原理

第一章 数据库系统基本概念 要求.目标: 了解和掌握数据管理技术的发展阶段,数据描述的术语,数据抽象的四个级别,数据库管理系统的功能,数据库系统的组成. 一. 数据管理技术的发展 1. 分为四个阶段:人工管理阶段.文件系统阶段.数据库阶段和高级数据库阶段. 2. 数据库阶段数据管理的特点: 1) 采用数据模型表示复杂的数据结构. 2) 有较高的数据独立性. 3) 数据库系统为用户提供了方便的用户接口. 4) 提供四方面的数据控制功能:数据库的恢复.数据库的并发控制.数据的完整性.数据安全性. 5

数据库系统原理

在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y 不包含于 X,则称X→Y是非平凡的函数依赖若X→Y,但Y 包含于 X, 则称X→Y是平凡的函数依赖例:在关系SC(Sno, Cno, Grade)中,非平凡函数依赖: (Sno, Cno) → Grade平凡函数依赖: (Sno, Cno) → Sno(Sno, Cno) → Cno(通常,我们总是讨论非平凡的函数依赖) 在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’ -\->Y, 则称Y对X完全函数依赖,记作X -

简单易懂的程序语言入门小册子(9):环境,引入环境

\newcommand{\mt}[1]{\text{#1}} \newcommand{\mE}{\mathcal{E}} \newcommand{\tup}[1]{\left<{#1}\right>} 环境类似于其他语言(C++.JAVA等)的"符号表". 所谓符号表,是一张将变量名与变量代表的内容联系起来的一张表. 不过这里我们抛弃符号表的观点,单纯地从算法角度上引入环境这一概念. 引入环境 通过修改解释器求值过程的算法,可以很自然的引入环境这个概念. 在前面基于文本替换

2016.6.17 数据库设计之数据依赖的公理系统

**数据依赖的公理系统是模式分解算法的理论基础,Armstrong公理系统. **逻辑蕴含:对于满足一组函数依赖F的关系模式R<U,F>,其任何一个关系r,若函数依赖X->Y都成立,则称F逻辑蕴含X->Y. (1)关系模式R<U,F>有以下推理规则: ①自反律:若Y属于X属于U,则X->Y为F所蕴含: ②增广律:若X->Y为F所蕴含,且Z属于U,则XZ->YZ为F所蕴含: ③传递律:若X->Y即Y->Z为F所蕴含,则X->Z为F所蕴含

关系数据库设计基础(函数依赖、无损连接性、保持函数依赖、范式)(转)

联系(Relationship) 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中一个实体有联系,反之亦然,那么实体集E1对E2的联系成为一对一联系,记为1:1: 1:N联系:一对多,记为1:N: M:N联系:多对多联系,记为M:N. http://zh.wikipedia.org/wiki/%E5%85%B3%E7%B3%BB%E4%BB%A3%E6%95%B0_(%E6%95%B0%E6%8D%AE%E5%BA%93) 函数依赖(Function Dependency) 定义 设

数据库复习之规范化理论应用(第八次上机内容)

声明:本文为作者复习数据库课程时简单记录的笔记,如有错误之处,敬请指出,谢谢. 一.理论基础 1.无损连接性(Lossless Join):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),…, Rn(Un,Fn),其中U=U1U2…Un,且不存在UnUj式,Fi为F在Uj上的投影,如果R与R1,R2,…,Rn自然连接的结果相等,则称关系模式R的分解具有无损连接性. (上面别看了,看下面!) 简单来说,就是如果对分解后的新关系进行自然连接得到的元组的集合与原关系