closure란 mdn설명으로는 함수와 그 안에 존재하는 lexical environment와의 조합입니다.
이 것을 더 정확하게 표현하면 내부함수가 스코프 밖에 있는 변수에 접근하는 것이라고 할 수 있습니다.
closure의 가장 큰 특징은 정보 은닉과 캡슐화를 제공한다는 것이고 이를 이용해서 module model을 만드는 데에 활용됩니다.
참고자료 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures -> mdn 클로저 정의
https://poiemaweb.com/js-closure -> 클로저 함수의 좀더 자세한 활용법
함수를 호출할 때 new 키워드를 사용하는 경우 함수 내부의 this는 완전히 새로운 객체입니다.
call bind apply를 통해 호출될 때 함수 내부의 this는 인수로 전달된 객체입니다.
함수를 메서드로 호출하는 경우 this는 함수가 인자인 객체입니다. 브라우저에서는 window 객체입니다. 엄격 모드('use strict') 일 경우, this는 전역 객체 대신 undefined가 됩니다.
.call은 쉼표로 구분된 인수를 두 번째 인수로 취하고 .apply는 인수의 배열을 두 번째 인수로 취합니다.
우선 GET 방식은 요청하는 데이터가 HTTP Request Message의 Header 부분의 url 에 담겨서 전송된다. 이렇게 보내진 데이터에는 크기가 제한되어있고 url 정보가 전송되기 때문에 보안에 취약해집니다. 그래서 get은 데이터를 가져올 때 사용하게 됩니다.
POST는 request가 body에 전송되게 됩니다. url이 노출되지 않기 때문에 보안의 위험이 존재하지 않고 데이터의 양에 제한이 없어서 요청을 하는 데에 사용됩니다.