Board logo

标题: [其他] 这种写法叫什么名称,JavaScript [打印本页]

作者: cc0128    时间: 2009-6-2 13:46     标题: 这种写法叫什么名称,JavaScript

function后面带括号把当前的变量给传进方法里,这个叫什么,外函数,还是啥?

this.num_input.onblur  = (function(v) {
                                return function(){
                                        v.numCheck();
                                }
                        })(this);

[ 本帖最后由 cc0128 于 2009-6-2 13:47 编辑 ]
作者: 三娃    时间: 2009-6-2 14:18

闭包(Closure)
作者: cc0128    时间: 2009-6-2 14:23

谢谢ls,原来这个就是传说中的闭包~~

[ 本帖最后由 cc0128 于 2009-6-2 14:26 编辑 ]
作者: leonWong    时间: 2009-6-2 14:27

什么叫闭包?
无知了,第一次这个词..........
作者: cc0128    时间: 2009-6-2 14:33

var tmp = 233;
var tmp2 = (function(v) {
return function(){
return v
}
})(tmp);
这个传值的方式叫什么名称
作者: cc0128    时间: 2009-6-2 14:34

引用:
原帖由 leonWong 于 2009-6-2 14:27 发表
什么叫闭包?
无知了,第一次这个词..........
闭包的“闭”是指闭包的内部环境对外部不可见,也就是说闭包具有控制外部域的能力但是又能防止外部

对闭包的反向控制,换句话说,闭包的领域是对外封闭的。这一特点是因为javascript闭包是通过function实现的

所以它天然具有基本的函数特征,在闭包内声明的变量,闭包外的任何环境都无法访问的,除非闭包向外部

环境提供了访问它们的接口。
作者: leonWong    时间: 2009-6-2 14:39

引用:
原帖由 cc0128 于 2009-6-2 14:34 发表

闭包的“闭”是指闭包的内部环境对外部不可见,也就是说闭包具有控制外部域的能力但是又能防止外部

对闭包的反向控制,换句话说,闭包的领域是对外封闭的。这一特点是因为javascript闭包是通过function实现的
...
真像匿名方法
作者: 小猪快跑    时间: 2009-6-2 14:43

对javascript不熟
作者: 舟易行    时间: 2009-6-2 14:46

闭经吧。。。。
作者: 猫猫的小叔叔    时间: 2009-6-2 23:15

TG真神
作者: 比卡丘    时间: 2009-6-2 23:17

平常很少用到。。
作者: 打击者    时间: 2009-6-2 23:32

看看jquery的plugin
http://www.learningjquery.com/20 ... development-pattern

java居然还不支持闭包,还得用内部类来实现,反倒是c#用lambda表达式就经常用到它,很爽很方便

[ 本帖最后由 打击者 于 2009-6-2 23:35 编辑 ]
作者: cc0128    时间: 2009-6-3 10:15

引用:
原帖由 打击者 于 2009-6-2 23:32 发表
看看jquery的plugin
http://www.learningjquery.com/20 ... development-pattern

java居然还不支持闭包,还得用内部类来实现,反倒是c#用lambda表达式就经常用到它,很爽很方便
不过jquery我一直都用来获取下页面dom,偶尔做点小效果。。暴殄天物啊。。
写多了js。
现在看到java就烦,写得一点也不爽
作者: 三娃    时间: 2009-6-3 11:22

现在不让我用jquery的话,我已经做不出任何东西来了
作者: USE2    时间: 2009-6-3 13:26

没用过
学习下
作者: hotjk    时间: 2009-6-3 15:06

TG真是神一样的论坛,不上黄网也不用上CSDN
作者: xu33    时间: 2009-6-3 15:24

引用:
原帖由 cc0128 于 2009-6-2 14:33 发表
var tmp = 233;
var tmp2 = (function(v) {
return function(){
return v
}
})(tmp);
这个传值的方式叫什么名称
这个貌似是匿名函数的一种调用方法,目的是保护全局变量不被污染
作者: 提拉    时间: 2009-6-3 15:30

闭肛:D
作者: cc0128    时间: 2009-6-4 16:58

引用:
原帖由 xu33 于 2009-6-3 15:24 发表


这个貌似是匿名函数的一种调用方法,目的是保护全局变量不被污染
貌似就是这个啦。mark




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0