这里我有一个我正在研究的节点模块。以前它只是许多嵌套函数。我想改进代码,所以代之以写出所有函数,然后按顺序将它们全部调用。发生了一件奇怪的事情,而不是TypeError: Cannot read property 'url' of undefined
。
var User = require( '../models/userModel' ),
...
exports.add = function ( req, res ) {
function getVideoId ( req, callback ) {
videoId = URL.parse( req.query.url ).query.slice(-11)
callback( videoId )
}
...
getVideoId( req, function() {
...
...
...
...
...
return res.json( "Done." )
})
})
})
})
})
})
}
答案 0 :(得分:1)
退出函数时,您的范围发生了变化。由于您在另一个内部声明了一个函数,因此维护了作用域。因此,在嵌套函数3中,您可以使用嵌套函数1和2的所有值!