[Javascript] 오버라이딩과 오버로딩
9221 단어 오버라이딩오버로딩JavaScriptJavaScript
1. Overriding - 구현부의 다양성
:자바스크립트는 원래 정의 되어있던 식별자(예: alert)도 overriding할 수 있다. 무엇이든 데이터 타입 변경이 가능하니 typeof를 꼭 출력해보자!
<테스트 예제>
//사용된 변수는 window에 등록되고, 값은 가변적으로 사용이 가능하다.
var hello = 1234;
hello = "안녕하세요";
console.log(typeof hello);
hello= 1234;
console.log(typeof hello);
hello= 1234;
console.log(typeof hello);
hello = new Date(); //생성자 처럼 사용
console.log(typeof hello);
hello = Date(); //메소드처럼 사용하면 결과(return type)을 전달해준다.
console.log(typeof hello);
hello = {name:"채수빈", age:10}; //클래스가 없기 때문에 name, age의 멤버 데이터로 객체를 정의
console.log(typeof hello);
hello = function(){
console.log("hello를 값을 지정하는 식별자에서 동작을 정의하는 식별자로 변경");
//return 필수가 아님
}
console.log(typeof hello);
//식별자도 type을 변경할 수 있으니 확인하면서 코딩해야한다.!!
alert = function(){ //원래 정의 되어있던 식별자(예: alert)도 overriding할 수 있음
console.log("구현부 바꾸는거 - overriding");
}
window.alert("message");
<테스트 결과>
**주의!!
: 식별자도 type을 변경할 수 있으니 확인하면서 코딩해야한다.!!
2. Overloading - 입력 매개인자의 다양성
: 자바스크립트는 매개인자 선언과 상관없이 입력값을 넣을 수 있다.
<테스트 예제>
function user(){
console.log("user()");
}
//overloading - 매개인자 선언과 상관없이 입력값을 넣을 수 있다.
myUser = function(name, age){
console.log("myUser()",arguments.length); //자바스크립트의 배열은 가변적으로 사용이 가능하다.(java와 큰 차이점)
console.log(name,age);
for (var t in arguments){
console.log(arguments[t],t, typeof arguments[t]); //t는 인덱스 값(키 값)
}
}
user();
myUser();
myUser("홍길동",10);
myUser(10,20,30,40);
<테스트 결과>
Author And Source
이 문제에 관하여([Javascript] 오버라이딩과 오버로딩), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soobin519/Javascript-오버라이딩과-오버로딩저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)