Javascript异步执行时要小心的变量作用域
2013-08-14 20:08
393 查看
function asyncFunction(callback){ setTimeout(function(){ callback() },200); } var color = 'blue'; //调用上面的函数 asyncFunction(function(){ console.log('the color is'+color); //green }); //闭包函数 //To "freeze" the contents of the color variable you can modify your logic and use a JavaScript closure. (function(color){ asyncFunction(function(){ console.log('the color is'+color); //blue }); })(color); color = 'green';
1.By making "color" an argument for anonymous function, it becomes local to the scope of that function and
when the value of color is changed outside of the anonymous function,the local version is unaffected.
相关文章推荐
- javascript异步执行函数导致的变量变化问题解决思路
- 异步执行时变量共享(C#与javascript)
- javaScript 自执行函数—保留异步方法调用的内部变量
- JavaScript的执行环境和变量作用域
- JavaScript在执行代码之前会校验代码,声明变量提前至当前作用域最前面。
- 浅析javascript异步执行函数导致的变量变化问题解决思路
- JavaScript学习——变量的作用域
- javascript中运用闭包和自执行函数解决大量的全局变量问题
- javascript的变量作用域--对比js、php和c的for循环
- javascript中的变量作用域
- JavaScript的变量作用域深入理解(转)
- 深入理解JavaScript的变量作用域
- Javascript 变量作用域 两个可能会被忽略的小特性
- JavaScript:Scope &Closure 变量作用域和闭包
- JavaScript之变量作用域与声明提前
- javascript关于变量作用域
- JavaScript 中的匿名函数((function() {})();)与变量的作用域
- JavaScript中的变量作用域介绍
- Javascript 变量作用域 缩写词 及两种定义的区别
- javascript 变量作用域