{} 객체화
export let UserInfo = {
printName: `이름은 11 입니다.`,
printAge: `나이는 22 입니다. `,
showName: function() {
console.log(this.printName);
},
showAge: () => {
console.log(this.printAge);
}
};
let userInfo = UserInfo;
console.log('instanceA', userInfo);
userInfo.showName();
userInfo.showAge();
userInfo.printName;
함수를 이용하여 객체화
export function UserInfo(name, age) {
this.printName = `이름은 ${name} 입니다.`;
this.printAge = `나이는 ${age} 입니다. `;
this.showName = () => {
console.log(this.printName);
};
this.showAge = () => {
console.log(this.printAge);
};
}
let userInfo = new UserInfo('aaa',11);
console.log('instanceA', userInfo);
userInfo.showName();
userInfo.showAge();
userInfo.printName;
userInfo.printAge;
클로져 이용하여 객체화
- 리턴된 함수나 변수만사용 가능 외부에서 printAge 사용하지 못함.
export function userInfo(name, age) {
let printName = `이름은 ${name} 입니다.`;
let printAge = `나이는 ${age} 입니다. `;
function showName() {
console.log(printName);
}
function showAge() {
console.log(printAge);
}
return {
printName,
showName,
showAge
};
}
let userInfo = UserInfo('aaa',11);
userInfo.showName();
userInfo.showAge();
userInfo.printName;
or
let {showName,showAge,printName} = UserInfo('aaa',11);
showName();
showAge();
console.log(printName);
Class 이용하여 외부에서 사용
- 리턴된 함수나 변수만사용 가능 외부에서 printAge 사용하지 못함.
export class ClosureUserInfoD {
constructor(name, age) {
this.printName = `이름은 ${name} 입니다.`;
this.printAge = `나이는 ${age} 입니다. `;
}
showName() {
console.log(this.printName);
}
showAge() {
console.log(this.printAge);
}
}
let userInfo = new UserInfo('aaa',11);
userInfo.showName();
userInfo.showAge();
userInfo.printName;
userInfo.printAge;