[Javascript]オーバーロードとオーバーロード
9229 ワード
1.Overriding:実施部門の多様性
:JavaScriptは、元の定義された識別子(alertなど)を上書きすることもできます.何でもデータ型を変更できるので、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.過負荷-入力パラメータの多様性
:JavaScriptでは、パラメータ宣言に関係なく入力値を入力できます.
<テスト例>
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);
<テスト結果>Reference
この問題について([Javascript]オーバーロードとオーバーロード), 我々は、より多くの情報をここで見つけました https://velog.io/@soobin519/Javascript-오버라이딩과-오버로딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol