javascript 怎么在回调函数内,修改外部变量

JavaScript028

javascript 怎么在回调函数内,修改外部变量,第1张

js在回调函数内,修改外部变量的方法常用async参数。代码举例如下:var async = require('async')function get_time_line() {var list = []// List 不能为一个空数组,不然循环个屁啊var getValue = function(li,oneDone){// li.key 是你每个数组元素中的参数,你自己改吧db.hget(li.key, 'time_line', function(err, reply) {// 存到每个元素里去li['newValue'] = reply// 做好了oneDone()})}async.each(lists,getValue,function(err,result){if (!err) {// 全都抓完了,输出最后有newValue的listconsole.log(lists)// do sth. else}})}以上是node.js中最常用的修改内部变量的方法。

根据函数作用域链,变量是一层一层向作用域链外部逐层寻找距离最近的定义。所以,在函数内部,是可以访问到外部的,也就是上级的变量。但是,在函数外部,是无法访问到函数内部的变量的。如果你想访问,可以通过,闭包,定义全局变量等方法来获取。