3 ms·
are JS closures already fixed ? var a = 10; var fn = function (x) { return x + a}; fn(10); ==> 20 var a = 1; fn(10) ==> 11 //WAT ?? Is the above fixed with E
by smnplk 10y ago
are JS closures already fixed ?
var a = 10;
var fn = function (x) { return x + a};
fn(10); ==> 20
var a = 1;
fn(10) ==> 11 //WAT ??
Is the above fixed with ES2015 ? Closures need to enclose values and not references.
- corecoder 10y agoI don't think javascript will ever be "fixed": it is as it is, if you change how hoisting works, you break everything. But: 1. You can solve that already in ES6, by returning fn from a function, also avoiding the global variable; 2. Your ES3 linter should warn you about the redefined variable.