본문 바로가기
학습 log (이론)/javascript

'객체지향 프로그래밍' 기초

by abbear25 2016. 10. 31.

자바스크립트는 거의 모든 것이 객체이며 함수 객체로 많은 것을 구현


클래스, 생성자, 메서드

함수 객체의 프로토타입 이용

각자 따로 함수 객체를 생성할 필요 없이 함수를 이용하여 체인으로 접근

클래스 안의 메서드를 정의할 때는 프로토타입 객체에 정의한 후,

new로 생성한 객체에서 접근할 수 있게 하는 편이 좋음

Function.prototype.method = function(name, func){
	if(!this.prototype[name])
		this.prototype[name] = func;
}
function Person(arg){
	this.name = arg;
}

/*Person.prototype.getName = function(){
	return this.name;
}*/

Person.method("getName",function(){
	return this.name;
})

/*Person.prototype.setName = function(value){
	this.name = value;
}
*/

Person.method("setName", function(value){
	this.name = value;
})
var me = new Person('me');
var you = new Person('you');
console.log(me.getName()+'&'+you.getName());

상속

객체 프로토타입 체인을 이용하여 구현

1.클래스 기반 전통적인 상속 방식을 흉내내어 구현

*java, c++과 유사, 클래스와 생성자 등의 개념이 포함되어있는 형태


2.클래스 개념 없이 객체의 프로토타입으로 상속을 구현

*프로토타입을 이용한 상속(prototypal inheritance)


반응형