불변 데이터와 자바스크립트 객체 상속

목차

불변 데이터

불변 데이터는 변경할 수 없는 데이터를 의미합니다. 자바스크립트에서 변수를 선언할 때 상수(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'

요약

자바스크립트에서 불변 데이터는 한 번 생성되면 변경할 수 없는 데이터를 의미하며, 객체 상속은 하나의 객체가 다른 객체의 프로퍼티와 메서드를 상속받는 것을 의미합니다. 불변 데이터와 객체 상속을 이해하고 활용하면 코드의 가독성과 재사용성을 높일 수 있습니다.

[참고 자료]