var x = "hi!"; request(url, function(error, response, body) { console.log(x); //prints "hi!" }); if remove line console.log(x) , replace console.log('hello!') , put breakpoint on line in webstorm, , if try evaluate x, says "referenceerror: x not defined".
why that? how webstorm works or javascript have sort of pre-processor includes variables being used in function, in it's closure?
the javascript compiler examines function, , determines free variables references, , variables put closure environment. if don't have console.log(x) in function, doesn't need put x environment.
for related question, see
Comments
Post a Comment