오버로딩(Overloading): 함수 이름은 같지만, 어떤 파라미터를 전달하느냐에 따라서 각각 다른 방식으로 호출이 가능. (ex. JSON.stringify)
let json = JSON.stringify(true);
console.log(json);
true
json = JSON.stringify(['apple', 'banana']);
console.log(json);
["apple","banana"]
const rabbit = {
name: 'tori',
color: 'white',
size: null,
birthDate: new Date(),
jump: function () {
console.log(`${this.name} can jump!`);
},
};
json = JSON.stringify(rabbit);
console.log(json);
{"name":"tori","color":"white","size":null,"birthDate":"2021-08-31T03:34:44.240Z"}
json = JSON.stringify(rabbit, ['name', 'color', 'size']);
console.log(json);
{"name":"tori","color":"white","size":null}
json = JSON.stringify(rabbit, (key, value) => {
console.log(`key: ${key}, value: ${value}`);
return key === 'name' ? 'ellie' : value;
});
console.log(json);
key: , value: [object Object]
key: name, value: tori
key: color, value: white
key: size, value: null
key: birthDate, value: 2021-08-31T03:34:44.240Z
key: jump, value: function () {
console.log(${this.name} can jump!
);
}
{"name":"ellie","color":"white","size":null,"birthDate":"2021-08-31T03:34:44.240Z"}
json = JSON.stringify(rabbit);
console.log(json);
{"name":"tori","color":"white","size":null,"birthDate":"2021-08-31T03:34:44.240Z"}
코드를 입력하세요
제너레이터 + 이터레이터 + 이터러블