객체를 만들어 사용하는 방법 4가지

이재원·2022년 1월 21일
0

{} 객체화

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;

0개의 댓글