함수의 오버로딩과 호이스팅
- 함수의 오버로딩을 지원하지 않는다.
- 동일한 이름의 함수가 여러개 있을 때는 덮어쓰기 방식으로 처리된다.
- 함수 호출시 매개변수의 개수는 호출에 영향을 주지 않는다. (매개변수의 갯수가 아닌 이름으로 찾는다)
소스
"use strict";
var fn = function() {
console.log(0);
};
fn();
function fn() {
console.log(1);
}
fn();
function fn() {
console.log(2);
}
fn();
function fn(num1, num2, num3) {
console.log(3);
}
fn(1, 2, 3);
호이스팅과정
- 선언시
var fn
function fn () { console.log(1); }
function fn () { console.log(2); }
function fn (num1, num2, num3) { console.log(3); }
- 실행시
fn = function () { console.log(0); }; // fn의 값이 0으로
fn();
fn();
fn();
fn(1, 2, 3); // 매개변수 관계없이 fn으로 찾아 0의 값을 출력
결과
0
0
0
0
댓글 영역