Posts Object를 생성하는 방법들
Object를 생성하는 방법들
Cancel

Object를 생성하는 방법들

Object를 생성하는 방법들

1. Functional

함수를 이용해서 인스턴스 객체 생성하기

1
2
3
4
5
6
7
8
var Car = function () {
	var someInstance = {};
	someInstance.position = 0;
	someInstance.move = function () {
		this.position += 1; // this === someInstance
	};
	return someInstance; // 인스턴스 반환
};

2. Functional Shared

인스턴스의 메서드를 함수 밖에 서 정의 및 할당한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var extend = function (to, from) {
	for (var key in from) {
		to[key] = from[key];
	}
};

var someMethods = {}; // 함수 Car 외부에 인스턴스에게 공유할 메서드 정의 및 할당
someMethod.move = function () {
	this.positio += 1; // 함수 extend 통해 this === someInstance
};

var Car = function () {
	var someInstance = {};
	someInstance.position = 0;
	someInstance.move = function () {
		this.position += 1; // this === someInstance
	};
	extend(someInstance, someMethods);
	return someInstance; // 인스턴스 반환
};

var car1 = Car(5);

3. Prototypal Instantiation

프로토타입 체인을 이용하여 인스턴스 객체 생성하기 Object.create() 메서드를 이용해서 인스턴스 객체의 부모 객체에 메서드 정의 및 할당한다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var someMethods = {};
someMethod.move = function () {
	this.positio += 1;
};

var Car = function () {
	var someInstance = Object.create(someMethods);
	someInstance.position = 0;
	someInstance.move = function () {
		this.position += 1; // this === someInstance
	};
	return someInstance; // 인스턴스 반환
};

var car1 = Car(5);

4.Pesudoclassical

인스턴스 객체 생성 시, new 키워드 사용하며, this를 사용한다.

1
2
3
4
5
6
7
8
var Car = function (position) {
	this.position = position;
};
Car.prototype.move = function () {
	this.position += 1;
};

var car1 = new Car(5);
This post is licensed under CC BY 4.0 by the author.

객체 지향 프로그래밍(OOP - Object Oriented Programming)

JavaScript에서 Prototype을 알아보자

Comments powered by Disqus.