불변 데이터와 자바스크립트 객체 상속
목차
불변 데이터
불변 데이터는 변경할 수 없는 데이터를 의미합니다. 자바스크립트에서 변수를 선언할 때 상수(const)를 사용하는 것이 불변 데이터를 표현하는 좋은 방법입니다. 상수를 사용하면 변수의 값이 변경되지 않고 유지되므로 예기치 않은 동작이 발생하는 것을 방지할 수 있습니다.
불변 데이터의 예로는 숫자(number), 문자열(string) 등이 있습니다. 이러한 데이터는 한 번 생성되면 그 값을 변경할 수 없으며, 해당 값을 수정하려면 새로운 값을 생성해야 합니다.
자바스크립트 객체 상속
자바스크립트에서 객체 상속은 하나의 객체가 다른 객체의 프로퍼티와 메서드를 상속받는 것을 의미합니다. 이를 통해 코드의 재사용성을 높일 수 있고, 계층 구조를 표현할 수 있습니다.
자바스크립트에서 객체 상속은 prototype
을 이용하여 구현됩니다. prototype
은 객체의 프로퍼티와 메서드를 포함하는 객체로, 다른 객체에서 상속받을 때 사용됩니다.
자바스크립트에서 객체 상속을 구현하는 방법에는 두 가지가 있습니다. 첫 번째는 Object.create()
를 사용하는 방법이며, 두 번째는 생성자 함수와 new
키워드를 사용하는 방법입니다.
// Object.create()를 사용한 객체 상속
const parentObj = {
parentProp: 'parent',
};
const childObj = Object.create(parentObj);
childObj.childProp = 'child';
console.log(childObj.parentProp); // 'parent'
console.log(childObj.childProp); // 'child'
// 생성자 함수와 new 키워드를 사용한 객체 상속
function Parent() {
this.parentProp = 'parent';
}
function Child() {
Parent.call(this); // 부모 객체의 속성을 자식 객체에 할당
this.childProp = 'child';
}
Child.prototype = Object.create(Parent.prototype); // prototype 상속
Child.prototype.constructor = Child; // constructor 재설정
const childObj = new Child();
console.log(childObj.parentProp); // 'parent'
console.log(childObj.childProp); // 'child'
요약
자바스크립트에서 불변 데이터는 한 번 생성되면 변경할 수 없는 데이터를 의미하며, 객체 상속은 하나의 객체가 다른 객체의 프로퍼티와 메서드를 상속받는 것을 의미합니다. 불변 데이터와 객체 상속을 이해하고 활용하면 코드의 가독성과 재사용성을 높일 수 있습니다.
[참고 자료]
- MDN - Working with objects
- MDN - Object.create()
- MDN - Inheritance and the prototype chain
(HashTags: #불변데이터 #객체상속)