JavaScript\ActionScript\ruby\php中实现回调函数,以及由此引出的闭包问题的讨论(一)
2009-09-25 00:00:00 来源:WEB开发网核心提示: 首先是一个js的this的例子:之后是一个奇妙的不被人注意的问题:图片看不清楚?请点击这里查看原图(大图)。效果如下:每次显示都是6,好像和我们想的不一样啊,应该是不同的数字啊,事实上不是的,其实也不是很隐晦,因为在循环里我们给事件赋值一个函数的时候,函数并没有执行,在我们鼠标移动开始后才会执行
首先是一个js的this的例子:
之后是一个奇妙的不被人注意的问题:
图片看不清楚?请点击这里查看原图(大图)。
效果如下:
每次显示都是6,好像和我们想的不一样啊,应该是不同的数字啊,事实上不是的,其实也不是很隐晦,因为在循环里我们给事件赋值一个函数的时候,函数并没有执行,在我们鼠标移动开始后才会执行这个函数,此时,由于我们并没有创建闭包,所以引擎不会为每个函数保存变量i的值,当我们鼠标开始移动后,所有执行的函数里的i都是i的最终值:6.
下面我们对这个程序进行一下改动:
Tags:JavaScript ActionScript ruby
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接