💗 Javascript 객체

Javascript에서 제공되는 내장 객체와 사용자가 정의한 사용자 정의 객체로 구분한다

Javascript 각체는 속성과 메소드를 가진다

객체의 속성값으로 또 다른 객체를 가질 수 있다

     ⦁ 계층적 구조

 

 

 

💗 사용자 정의 객체

: 사용자가 정의한 사용자 정의 객체

Javascript에서는 기초형 타입을 제외한 모든 것이 객체이다. 객체는 Javascript에서 가장 중요한 데이터 타입이다.

 

✨ 객체

객체에 포함된 데이터 하나(이름과 값)를 가리켜 객체의 프로퍼티라고 부른다. 

 

 객체를 생성하는 방법

①  Object() 생성자를 이용하는 방법 (권장하지 않는 방법이다)

let user = new Object();
user.name = "홍길동";
user.hobby = ["여행", "영화"];
user.greeting = function() {
     console.log("안녕하세요~! 나는 " + this.name + "입니다.");
};
user.greeting();

 

② 객체 리터럴 생성자를 이용하는 방법

다음 코드는 회원 정보를 객체 리터럴로 표현하는 것이다

let member = { name : "홍길동", email : "javauser1234@naver.com" };

{ }부분이 바로 객체 리터럴이며, 객체 리터럴을 변수 member에 대입하고 있다.

프로 퍼티 이름과 프로퍼티 값은 name:"홍길동"처럼 콜론( : )을 사용해서 구분하며,

중괄호 ({ }) 안에 있는 프로퍼티들은 쉼표( , )로 구분한다.

프로퍼티 이름으로는 모든 식별자 와 문자열 리터럴(빈 문자열도 사용 가능)을 사용할 수 있다.

즉 앞 코드에 있는 프로 퍼티 이름은 문자열로 바꾸어 작성할 수 있다.

let user = {
name: "홍길동",
hobby: ["여행", "영화"],
greeting: function() {
     console.log("안녕하세요~! 나는 " + this.name + "입니다."); } }
user.greeting();

 

 프로퍼티 접근

프로퍼티 값에는 모든 데이터 타입의 값과 표현식을 대입할 수 있다.

변수에 대입된 객체 안의 프로퍼티 값을 읽거나 쓸 때는 마침표(.) 연산자 또는 대괄호([ ]) 연산자를 사용한다.

member.name;
member["email"];

 

객체에 없는 프로퍼티를 읽으려고 시도하면 undefined를 반환한다.

member.phoneNumber;

=undefined

 

객체 리터럴 안에 어떠한 프로퍼티도 작성하지 않으면 빈 객체가 생성된다.

let obj = {};

 

프로퍼티 추가와 삭제

실행 중에 프로퍼티를 자유롭게 추가하거 나 삭제할 수 있다.

없는 프로퍼티 이름에 값을 대입하면 새로운 프로퍼티가 추가된다

member.age = 20;
member["age"] = 20;

 

delete 연산자를 사용하면 프로퍼티를 삭제할 수 있다.

delete member.age;

 

 

③ 생성자 함수 생성자를 이용하는 방법

function User(name, hobby) {
     this.name = name;
     this.hobby = hobby;
     this.greeting = function () {
         console.log("안녕하세요~! 나는 " + this.name + "입니다.");
     }
}
// user 객체를 생성하는 데 new를 활용해 생성자 함수 호출
let user = new User("홍길동", ["여행", "영화"]);
user.greeting();

 

④ ES6의 클래스 생성자를 이용하는 방법

class User {
     // User 생성자 함수와 상응
     constructor(name, hobby) {
          this.name = name;
          this.hobby = hobby;
     }
     greeting() {
          console.log("안녕하세요~! 나는 " + this.name + "입니다.");
}
}
let user = new User("홍길동", ["여행", "영화"]);
user.greeting();

 

⦁ 자바스크립트는 prototype 기반 언어이다.

- 객체를 원형(prototype) 형태로 생성하고, 그 안에 기능을 위한 함수 나 변수를 추가하는 방법으로 그룹화하는 개념.

 

⦁ prototype 기반 언어에서의 객체 생성 과정

메소드 형식 설 명
빈 객체의 생성 let 객체명 = {}; 아무런 기능이 없는 상태의 빈 객체를 생성
변수(필드)의 추가 객체명.변수명 = 값; 빈 객체 안에 변수들을 추가해 넣는다.
함수(메서드)의 추가 객체명.함수명 = function(){
     함수의 구현 부분;
     [return 값;] }
빈 객체 안에 함수들을 추가해 놓는다.

 

'Language > Javascript' 카테고리의 다른 글

1. DOM (Document Object Model)  (0) 2022.05.17
2. Javascript 내장 객체  (0) 2022.05.17
JavaScript - Event  (0) 2022.05.12
JavaScript 함수  (0) 2022.05.12
JavaScript 제어문 / 반복문  (0) 2022.05.12