-
[객체] - 객체의 생성방법JavaScript/기본 1 2022. 2. 5. 13:42
- 리터럴 표기(literal notation)를 이용한 방법
-
// 문법 var 객체이름 = { 프로퍼티1 이름: 프로퍼티1의 값, 프로퍼티2 이름: 프로퍼티2의 값, ... }; -
// 예제 var kitty = { name: "나비", family: "코리안 숏 헤어", age: 1, weight: 0.1 }; document.write("고양이 이름은 " + kitty.name + "이고, 종은 " + kitty.family + "입니다."); // 고양이 이름은 나비이고, 종은 코리안 숏 헤어입니다.
-
- 생성자 함수(constructor function)를 이용한 방법
- new 연산자 사용하여 객체 생성하고 초기화할 수 있다. => 생성자(constructor)
- 자바스크립트에서 제공하는 생성자를 사용할 수도 있고 (예제),
사용자가 직접 객체 생성자 함수를 작성해서 사용할 수도 있다. (자바스크립트 프로토타입 참고) -
// 예제 var day = new Date(); // new 연산자를 사용하여 Date타입의 객체를 생성함 document.write("올해는 " + day.getFullYear() + "년입니다."); // 올해는 2022년입니다.
- Object.create( )메소드를 이용한 방법
- 지정된 프로토타입 객체와 프로퍼티를 가지고 새로운 객체를 만들어 준다.
- 사용자가 프로토타입 객체를 직접 명시할 수 있어 유용하다.
-
// 문법 Object.create(프로토타입객체, [, 새로운 객체의 프로퍼티1, 새로운 객체의 프로퍼티2, ...]); // 첫 번째 인수 : 프로토타입으로 사용할 객체 전달 // 두 번째 인수 : 새로운 객체의 추가할 프로퍼티 정보 전달 -
// 예제 var obj = Object.create(null, { // null 프로토타입을 사용하여 새로운 객체를 만들고 x: {value: 100, enumerable: true }, // x좌표를 나타내는 열거할 수 있는 프로퍼티 y: {value: 200, enumerable: true } // y좌표를 나타내는 열거할 수 있는 프로퍼티를 추가함 }); obj.x; // x좌표 => 100 obj.y; // y좌표 => 200 Object.getPrototypeOf(obj); // 객체의 프로토타입을 반환해 줌 => null
=> 위 방법으로 생성되어 메모리에 대입된 객체를 인스턴스(instance)라 한다.
인스턴스(instance)
클래스를 new 명령문으로 메모리에 생성한 객체
클래스를 복제하여 복제본(instance)에 내부적으로 다른 데이터 유지- 클래스가 하나의 (공통적인 특징, 형태..?의)"틀"이라고 하면
- 인스턴스는 그 틀을 복사하여 내부적으로 다르게 설정할 수 있게 된다.
- 각각의 인스턴스는 공통적인 클래스를 갖게 되지만
- 그 안에 수치나 성질?을 다르게 사용할 수 있다.
- [비유] => 자동차 공장
- 기본적인 자동차의 설계도는 동일하지만 (클래스)
- 자동차의 색깔, 내부에 각각의 옵션들이 다르게 구성될 수 있다.
-
// Java public class Print { public static void main(String[] args) { Print p1 = new Print(); p1.delimiter = "----"; p1.A(); p1.A(); p1.B(); p1.B(); Print p2 = new Print(); p2.delimiter = "****"; p2.A(); p2.A(); p2.B(); p2.B(); } } class Print { public String delimiter = ""; public void A() { System.out.prinln(delimiter); System.out.println("A"); System.out.println("A"); } public void B() { System.out.println(delimiter); System.out.println("B"); System.out.println("B"); } } // 결과 // ---- // A // A // ---- // A // A // ---- // B // B // ---- // B // B // **** // A // A // **** // A // A // **** // B // B // **** // B // B
[Instance 참고 : https://opentutorials.org/course/4074/26989 ]
'JavaScript > 기본 1' 카테고리의 다른 글
[객체] - 객체 다루기 (this) (0) 2022.02.05 [객체] - 프로토타입 (0) 2022.02.05 [객체] - 객체 기본 개념 (0) 2022.02.05 [함수] - 미리 정의된 전역 함수 (0) 2022.01.22 [함수] - 매개변수와 인수 (0) 2022.01.22 - 리터럴 표기(literal notation)를 이용한 방법