Skip to main content

Closures


Closures is (a fancy term for) a function that remembers outside things that are used inside

const createPrinter() {
  const name = 'Alex'

  const printName = () => {
    console.log(name)
  }
  return printName
}

const myPrinter = createPrinter()

myPrinter() // Alex


This function that was return from from createPrinter function is called a closure. // Here is printName
Closure is a combination of a function and the environment where it was declared.

Comments

Popular posts from this blog

Why Redux?

Redux giúp mình State management  - Quản lý State dễ thở hơn. Nếu bạn đã truyền (passing) props giữa các component thì chắc bạn sẽ gặp 1 lúc mà việc pass đi như vậy phức tạp và rườm rà nếu tụi nó nest nhau quá nhiều tầng, hoặc nhiều component cùng dùng chung một cái state ở đẩu đâu đó, việc passing props vậy đúng là cực hình, phải truyền từng tầng từng tầng một  => code nhiều => thì chắc chắn sẽ nhiều bug hơn (không code thì không bug =)) ). Mà bug này là khóc luôn. Kiểu phải truyền xuống từng tầng một này hay gọi là  Props drilling (also called "threading"). Redux với ý tưởng là sẽ tạo 1 cái " store " to bự chảng, chứa tất cả state mà app bạn cần dùng (share giữa nhiều component). Bạn cứ hiểu như nó là một cái component nằm ở đỉnh tree node của app. mấy cái node dưới sẽ là con nên sẽ access đến store được, chỉ cần connect vào là xong. Cái nào cần dùng thì sẽ " connect " vào cái " store " và dùng state đó thông qua props như thô...

Array.fill()

Caveat: If you .fill() an Array with an object, all elements refer to the same instance (i.e., the object isn’t cloned) So if you do something like: let a = Array(3).fill([]) // create an array named a and fill it with 3 empty array a[2].push('poop') // push new value to the element array at index 2 expect [ [], [], [2]] But because all element refer to the same instance, so the result is: [[2], [2], [2]] More details here:  https://2ality.com/2018/12/creating-arrays.html