베짱이와 노는 개미

웹개발(javascript)프로젝트 챗봇만들기-#8 객체 본문

웹개발(JAVASCRIPT)프로젝트-챗봇만들기

웹개발(javascript)프로젝트 챗봇만들기-#8 객체

jsistop16 2021. 9. 23. 17:37

오늘은 javascript에서 '객체'라는 개념에 대해서 알아보겠다.

java나 c++같은 언어를 배워봤다면 객체가 무엇인지 조금은 알 수도 있다.

자바로 예를 들자면 하나의 클래스에서 만들어진 객체는 각각의 특정적인 데이터들을 가지는 집합이다.

예를 들어 Dog이라는 클래스안에 name, age의 변수를 포함시킨 상태에서 jindo라는 객체를 만들면

jindo라는 객체에는 name과 age에 특정값을 가지는 상태로 탄생된것이다.

즉 class=틀 , 객체=특정값을가지는 틀의 자식들 이라고 이해하면 될것같다.(자식이라고 해서 상속은 아니다)

javascript에서의 객체도 특정 데이터를 갖는다는 점에서 유사하다.

var dog = { name : "댕댕이" , age : 1, family : "치와와" };

이런식으로 dog이라는 객체를 만들수있고

 

파이썬에서 자주 사용되는 딕셔너리 형식처럼 key와 value로 이루어져 있다고 이해해도 좋을것같다.

 

즉 dog이라는 객체의 name, age, family값들을 사용할 수 있는것이다.

 

이 값들을 객체의 속성, 프로퍼티 라고 부른다.

 

dog의 이름을 참조하고싶다면 

 

dog.name 혹은 dog["name"] 이렇게 2가지 방식으로 참조할수있다.

 

프로퍼티를 추가하는 방식도 있다.

 

객체명.프로퍼티key이름 = 프로퍼티value값  이런식으로 추가해주면 된다.

var dog = { name : "댕댕이" , age : 1, family : "치와와" };

dog.color = "black";

그럼 dog이라는 객체에 color라는 키가 생기고 black이라는 값이 저장된다.

 

프로퍼티를 삭제하는 방식도 있다.

 

이름을 삭제하고 싶다면 

delete dog.name;

그럼 dog이라는 객체에 name값은 사라진다.

 

객체를 생성하는 방법은 의외로 간단하다 일반적으로 변수를 선언하듯이 var을 통해서 가능했다.

 

이제 함수를 통해서 객체를 생성하는 방법에 대해서 알아보자

 

함수도 하나의 타입이기때문에 함수로 객체생성하는것이 가능하다.

function Dog(name, age, color){
	this.name = name;
	this.age = age;
	this.color = color;
}

var myDog = new Dog("덕구","3","black");

java를 공부해본 사람이라면 이 코드가 그렇게 낯설지만은 않을것이다.

 

Dog이라는 함수는 name, age, color 3가지의 매개변수를 필요로 하고 그 함수(Dog)는 자신의 객체에

 

매개변수로 받은 데이터를 저장하는 함수이다.(this가 의미하는것이 객체라고 보면된다.)

 

즉 this.name = name;에서 우변의 name은 위에서 받은 매개변수 name값이고

 

좌변의 this.name 은 객체가 생성됐을때의 그 객체의 name값이다.

 

따라서

 

myDog이라는 객체에는 name:덕구, age:3, color:black 값이 존재하게 되는것이다.

 

즉 객체를 생성할때 함수가 필요로하는 매개변수가 어떤것인지(개수가 몇개인지) 확인해주고 충족시켜줘야한다.