나는 헷갈렸던 기복적내용을 정리해보려 한다.

함수는 한 번 정의하면 몇 번이들 실행할 수 있고 호출할 수 있는 자바스크립트 코드 블록이다. 자바스크립트 함수는 매개변수를 가질 수 있다. 즉, 함수 정의에는 매개변수, 또는 형식인자라고 불리는 식별자 목록이 포함될 수 있는데, 이 매개변수는 함수 몸체 내에서 지역 변수처럼 취급된다. 함수 호출 시에는 함수의 매개변수에게 값, 즉 실인자들을 제공한다. 대개 함수는 반환 값을 계산하는 과정에서 이 실인자, 즉 전달인자 값을 사용하며, 이 반환 값은 함수 호출 표현식의 결과 값이 된다. 각 호출에는 전달인자 외에도 호출 컨텍스트가 포함되는데, this 키워드의 값이 바로 해당 컨텍스트다.
어떤 객테의 프로퍼티로 할당된 함수를 해당 객체의 메서드라 한다. 어떤 함수를 객체를 대상으로, 또는 객체를 통해서 호출하면, 이 객체는 해당 함수의 호출 컨텍스트, 즉 호출된 함수의 this 값이 된다. 새로 생성된 객체를 초기화하는데 쓰이는 함수는 생성자라고 한다.
자바스크립트에서 함수는 객체이고 프로그램 안에서 조작할 수 있다. 이를테면 자바스크립트는 함수를 변수에 할당할 수 있고, 다른 함수에 인자로 전달할수도 있다. 함수는 객체이기 때문에, 포로퍼티를 지정할 수 있고 심지어는 함수의 메서드를 호출할 수도 있다.

*함수 정의하기
함수는 Function키워드에 의해 정의되며, function 키워드는 함수 정의 표현식 또는 함수 선언문에서
-함수 이름 식별자 : 함수 이름은 함수 선언문에서는 반드시 필요하다. 함수 이름은 곧 변수의 이름이며, 새로 정의된 함수 객체는 그 변수에 할당된다. 함수 정의 표현식에는 이름을 생략할 수 있다. 그러나 만일에 명시했다면, 그 이름은 해당 함수 몸체 안에서만 참조할 수 있다.
-쉼표로 구분된 0개 이상의 식별자들과, 이 식별자들을 둘러싼 한 쌍의 괄호. : 이 식별자들은 함수의 매개변수, 즉 형식인자들의 이름이고, 함수 몸체 내에서 지역 변수처럼 취급된다.
-0개 이상의 자바스크립트 문장을 포함하는 한 쌍의 중괄호 : 이 자바스크립트 문장들은 함수가 호출될 때마다 실행되는 함수의 본문이다.

참조 : 자바스크립트완벽가이드 (데이비드 플래너건)