Js中的闭包与自执行函数
来源:互联网 发布:overlay sdn网络分为 编辑:程序博客网 时间:2024/06/06 01:36
本文转载自:点击打开链接
在JS中,也常常需要复用,将一些常见的操作封装起来,目前看到的很多JS库,比如JQuery就是非常典型的,那么如何在JS中写一个可复用的呢?虽然在JS中有类的这个说法,但是我对这个玩意还是很抵触的,但是存在即合理。JS中的类是通过函数来模拟的,也就是说JS中的函数具有双重角色,用new关键字的将函数视为类,不用new的,它就是一个普普通通的函数。
我们知道,类就是一个数据类型,这个数据类型由属性和方法(函数)组成,如果函数只有属性,没有方法,那么这样的类,一般就单纯的表示为一个数据,增加上一些方法,那么类的功能将会有质的变化。既然在JS中,函数可以表示为类,而类中又有方法,那么在JS中函数内部新定义一个函数,也就不足为怪。
JS中最为强大的内容,我认为除了原型,就是闭包,这里就讨论闭包,闭包其实就是在一个函数内部定义一个新的函数,在执行的时候,会将这个函数返回,也可能是返回一个对象。下面就是一个简单的闭包:
var MathTest = function (x, y) { var x = x; var y = y; var add = function () { return x + y; } return add; }
var x = MathTest(3, 4); alert(x());
所谓匿名函数就是没有名字的函数,形式如下:
function () {
}
既然没有名字,那么如何调用呢:
var b=function () {
}
b()
可以将匿名函数付给一个变量,这个变量现在就充当了这个函数的名称,但是记住,这个不是名称,我只是这么叫,如果觉得不妥的话,可以认为b现在就是这个匿名函数的代表,在用的时候用b就等同于使用右边的函数。除了这种方式,还有就是自执行函数,形式如下:
(function(){
//代码
})();
自执行函数相当于我们上面两步的结合:
var b=function () {
}
b()
自执行函数是非常有用的,可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,在使用的时候只需要用这个奇怪的函数即可,伟大的JQuery就是通过这个奇怪的函数创建了一个$的对象,在这个匿名函数中,往往会定义一个属于自己的命名空间,或者返回一个属于自己的对象,上面的Img对象包含了旋转图片的操作,这操作中,调用了很多匿名函数中定义的其它方法,这些方法都是为Rotate来服务的。那么以后写自己可服用的操作的时候,就可以通过这种做法。
阅读全文
0 0
- Js中的闭包与自执行函数
- JS闭包、自执行函数小记
- for循环 js定时器 闭包 自执行函数
- 对自执行函数与闭包的理解
- JavaScript 自执行函数(闭包)
- 闭包之自执行函数
- js自执行函数
- js自执行函数
- js自执行函数
- js中的匿名函数和匿名自执行函数
- js闭包的用途(匿名自执行函数,缓存,实现封装,实现面向对象)
- 浅析Javascript匿名函数与自执行函数 (闭包)
- js中的闭包实现自增
- JS中的闭包函数
- 匿名函数,自执行函数和闭包
- JS匿名自执行函数
- JS匿名自执行函数
- JS匿名自执行函数
- 接口测试之基础及简要验证清单
- BZOJ 3781 莫队 解题报告
- TFRecord预处理
- 【转】【修改】lisp-in-a-box配置
- 怎样安装Maven
- Js中的闭包与自执行函数
- Java集合框架
- codeforces 864 F
- 递归及尾递归优化
- js加密地址栏参数并且获解密的地址栏参数
- jvm 命令
- 模板为什么不能分离编译
- Android笔记——Toolbar
- 贪心相关