插件里面的闭包函数

转载:http://www.cnblogs.com/mmzuo-798/p/7275412.html

闭包的作用:1、保护函数内的变量安全;2、在内存中维持一个变量(javascript垃圾回收机制)。

利用闭包的特性,我们可以在既避免内部临时变量影响全局空间,又可以在插件内部使用$符号作为jQuery的别名。常见的jQuery插件都是以下这种形式:


1

2

3

(function(){

    /*编写代码*/

})();

首先定义一个匿名函数function(){/*编写代码*/},然后用括号括起来,最后通过()这个运算符来执行。可以传递参数进去,以供内部函数使用。 


1

2

3

4

//为了更好的兼容性,开始前有个分号

;(function($){    //此处将$作为匿名函数的形参

/*编写代码,可以使用$作为jQuery的别名*/

})(jQuery);    //将jQuery作为实参传递给匿名函数

  

插件闭包实例1:


1

2

3

4

5

6

;(function(win){

    win.Login = function(){

    //code

    }

    Login.prototype = {


1

//code


1

2

3

4

  }

})(window);//传入window对象

   

插件闭包实例2:


1

2

3

4

5

6

7

8

9

10

//单例模式插件

var Computer = (function(){

    var Calculator = function(o){<br>    //code... <br>  }

    Calculator.prototype = {<br>    //code... <br>  }

    return {

        calculator: function(o) {

            var Cal = new Calculator(o);

        }

    }

})();

时间: 2024-11-08 19:57:28

插件里面的闭包函数的相关文章

Python 闭包函数

一.定义: 1. 定义在函数内部的函数 2. 包含对外部作用域名字的引用,而不是对全局作用域名字的引用那么该内部函数就称为闭包函数 x=1 def f1(): x=11111111111 def f2(): print(x) return f2 func=f1() 二.闭包函数的应用:惰性计算 def index(url): # url='https://www.python.org' def get(): # return requests.get(url).text print(reques

Python开发【第xxx篇】----闭包函数

函数的使用需要明确定义阶段和调用阶段 闭包函数:定义在函数内部的函数,包含对外部作用域名字的使用,而不是对全局作用域名字的引用 import requests def deco(url): def wrapper(): return (requests.get(url).text) return wrapper get = deco('https://www.baidu.com') print(get())

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数

一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.

JavaScript闭包中闭包函数this的指向

阅读文章前, 请先阅读阮一峰老师的这篇文章http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 前人写过的, 而且写得很好, 就没必要重复下去了. 只加一些阮老师的文章里没有说的.顺便总结一下. 引用一句话: "闭包就是functions that return function"(出处已经忘记啦) 闭包的类型: 循环闭包, 函数闭包 闭包的特点: 外部访问函数内部的值, 函数内部变量不被回收

闭包函数 装饰器 有参装饰器

闭包函数: 1 内部函数 2 包含对外部作用域而非全局作用域的引用闭包函数的特点: 自带作用域  延迟计算 #闭包函数定义 1 def timmer(func): 2 def inner(*args,**kwargs): 3 re = func(*args,**kwargs) 4 return re 5 return inner 6 7 index(): 8 print("hello") 9 10 index = timmer(index) #index == inner 11 ind

闭包函数、无参装饰器2

一.闭包函数 闭包函数:函数内部定义函数,成为内部函数.该内部函数包含对外部作用域,而不是对全局作用域名字的引用,那么该内部函数成为闭包函数. name='alex' #定义全局变量name='alex' def func(): name='egon' #定义局部变量name='egon' def bar(): print(name) return bar #返回bar函数名 b=func() #执行func()结果为bar的函数名 相当于b=bar name='haha' #重新定义全局变量n

&lt;04day&gt;_函数嵌套--闭包函数--装饰器--迭代器--生成器

一.函数的嵌套定义 1.python函数支持嵌套 def f1(): #f1函数的定义 def f2(): #f2函数的定义 print('from f2') def f3(): #f3函数的定义 print('from f3') f2() f1() 嵌套函数--运行结果说明: 1首先调用f1()结果,f1函数为空.担保函f2函数,f2函数有内容打印并且有调用,f2函数包含f3函数,但f3函数无调用. 运行结果: 列子:多个数据之间的大小比较. #!/usr/bin/python # -*- c

闭包函数、无参装饰器

闭包函数:函数内部定义函数,成为内部函数.该内部函数包含对外部作用域,而不是对全局作用域名字的引用,那么该内部函数成为闭包函数. name='alex' #定义全局变量name='alex' def func(): name='egon' #定义局部变量name='egon' def bar(): print(name) return bar #返回bar函数名 b=func() #执行func()结果为bar的函数名 相当于b=bar name='haha' #重新定义全局变量name='ha