Closure

by Krishna Ananthi

JavaScript

let f;

if (true) {
  let i = 1;
  f = () => {
    console.log(i);
  }
}

f();

ff = () => {
  let j = 1,
    k = 2;
  return () => {
    console.log(j);
    console.log(k);
  }
}

console.dir(ff());

let f1 = () => {
  for (let i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 0);
  }
}
f1();
let f2 = () => {
  for (var i = 0; i < 3; i++) {
    setTimeout(() => console.log(i), 0);
  }
}
f2();
let f3 = () => {
  for (var i = 0; i < 3; i++) {
    ((i) => {// getting as argument
      setTimeout(() => console.log(i), 0);
    })(i); //passing i as parameter

  }
}
f3();