자바스크립트 object 정리

김대익·2021년 9월 28일
0
/*
primitive type: null, undefined, Boolean, Number, String, Symbol
원시형은 값만 있고 property는 없다.
그럼에도 str.length가 되는 이유는 
자바스크립트 엔진이 String객체를 만들어서 length property를 참조한다. 
(이후 바로 가비지 컬렉터 대상)
---
structured type : object, array, tuple등
*/
let newObj = new Object(); 
let newObj = {};
//constructor 생성자

let champion = {
  //key: value
  name: "veigar";
  health: 2103;
}
console.log(champion.name); //veigar
console.log(champion.health); // 2103;
//champion.name과 champion[name]방식으로 value에 접근 가능


let obj = { name : "veigar", health : 2103};
function champion(name, health) {
	return {
  		name,
      	health,
    }
}
//객체 생성자 함수
let myChamp = champion("veigar", 2103);

let champion = {
  //key: value
  name: "veigar";
  health: 2103;
}

for (let key in champion) {
	console.log(key) // name, health
}
//for of 순서대로 아님, key값 리턴
//for in 순서대로 (iterable), value값 리턴

let champion = {
  //key: value
  name: "veigar";
  health: 2103;
}

let champion2 = champion;
//copy by reference 얕은 복사로 주소값이 복사됨 (값이 변하면 같이 변함)

let champion = {
  //key: value
  name: "veigar";
  health: 2103;
  talk: function() {
   console.log("I am ${this.name}"); 
    //여기서는 this가 무엇인지 정확하게 모른다
  }
}

champion.talk(); // "I am veigar"
//여기서 this.name이 champion.name임을 알게된다.

let champion(veigar, health = 2103) = {
  //key: value
  this.name = name;
  this.health = health;
  this.talk = function() {
   console.log("I am veigar"); 
  }
}

let myVeigar = new champion("veigar");
//new 생성자

0개의 댓글