스코프와 상속

스코프와 상속은 프로그래밍에서 중요한 개념으로 사용됩니다. 스코프는 변수와 함수가 접근 가능한 범위를 가리키며, 상속은 한 객체가 다른 객체의 특성과 동작을 이어받는 것을 의미합니다. 이번 포스트에서는 스코프와 상속에 대해 자세히 알아보겠습니다.

스코프

스코프는 변수와 함수가 정의된 위치에 따라 접근 가능한 범위를 결정합니다. 스코프는 전역 스코프와 지역 스코프로 나눌 수 있습니다. 전역 스코프는 프로그램의 시작부터 끝까지 유효한 범위를 가지며, 지역 스코프는 특정 블록 내에서만 유효한 범위를 가집니다.

자바스크립트에서는 스코프를 함수 단위로 생성합니다. 함수 내에서 선언된 변수는 그 함수 내부에서만 접근 가능하며, 함수 외부에서는 접근할 수 없습니다.

function myFunction() {
  var x = 10;  // 지역 변수
  console.log(x);
}

console.log(x);  // Error: x is not defined

상속

상속은 객체 지향 프로그래밍에서 중요한 개념으로, 한 객체가 다른 객체의 특성과 동작을 이어받는 것을 의미합니다. 이는 코드의 재사용성과 유지보수성을 높이는데 도움을 줍니다.

자바스크립트에서는 프로토타입 체인을 통해 객체 간에 상속을 구현합니다. 모든 객체는 prototype이라는 속성을 가지며, 이는 상위 객체의 프로퍼티와 메소드에 대한 참조입니다. 객체에서 특정 프로퍼티나 메소드를 찾을 때, 객체 자체에 해당 맴버가 없다면 상위 객체의 prototype을 확인하여 찾습니다.

// 부모 객체 생성
var parent = {
  name: "John",
  sayHello: function() {
    console.log("Hello, " + this.name);
  }
};

// 자식 객체 생성
var child = Object.create(parent);
child.name = "Jane";
child.sayHello();  // Hello, Jane

위 예시에서 child 객체는 parent 객체의 프로퍼티와 메소드를 상속받았습니다. child 객체는 name을 “Jane”으로 재정의하고, sayHello 메소드를 호출하여 “Hello, Jane”을 출력합니다.

이처럼 스코프와 상속은 프로그래밍에서 중요한 개념으로 사용되며, 자바스크립트를 비롯한 다양한 프로그래밍 언어에서 사용됩니다.

#Tech #JavaScript