key : 문자, 숫자, symbole 등 단순 값
value : 문자, 숫자, (원시값), 객체 함수 등
let puppy = {
name : '코코',
'puppy-color' : 'cream',
display : function(){
console.log(`${puppy.name} :🐕`);
}
}
key값에 '-'를 쓸 수 없음 -> 문자열로 변환하여 써야 함.
console.log(puppy);
console.log(puppy.shape);
console.log(puppy['puppy-color']);
puppy.display();
let cat = new Object()
cat.name = '키위';
cat['color'] = 'cream';
cat.display = function(){
console.log(`${this.name} : 🐈`);
}
console.log(cat);
console.log(cat.display());
지정된 프로토타입 객체와 프로퍼티를 갖고 새로운 객체를 만들어 줌.
사용자가 프로토타입 객체를 직접 명시할 수 있음.
상위클래스의 메소드를 하위클래스 메소드로 가져올 수 있음.
상위클래서의 constructor가 복사되어 오기 때문에 하위클래서 constructor를 따로 지정해 주어야 함
function nctMember(name, team, position){
this.name = name;
this.team = team;
this.position = position;
}
nctMember.prototype.intro = function(num){
console.log(`${this.name}'s team : ${this.team} age : ${num} position : ${this.position}`);
}
function nct(name, team, position){
nctMember.call(this, name, team);
this.position = position;
}
nct.prototype = Object.create(nctMember.prototype);
const jisung = new nct('jisung.park', 'NCT DREAM', 'vocal, rap')
jisung.intro(21);
nctMember에 지정했던 intro라는 속성을 사용할 수 있음.
nct.prototype.constructor = nct;
jisung의 constructor가 nctMember의 constructor를 받기 위해 작성.
const obj = {
name : '마크',
age : 24
}
// 코딩하는 시점, 정적으로 접근이 확정
console.log(obj);
console.log(obj.name);// value값을 얻을 수 있음.
obj.name = '제노'; // value값 수정
console.log(obj);
obj.team = 'NCTDREAM';
console.log(obj);
const obj = {
name : "마크"
}
function getValue(obj,key){
return obj[key];
}
console.log(getValue(obj,"name"));
// 동적으로 추가
function addKey(aa, bb, cc){
aa[bb] = cc;
}
addKey(obj, "age", '24');
console.log(obj);
addKey(obj, "country", "canada");
console.log(obj);
const x = 0;
const y = 0;
const a = {
x,
y
}
console.log(a);
const name = '마크';
const age = '24';
function b(name, age){
return{
name,
age
}
}
console.log(b(name, age));