프로퍼티(Property)
- 객체에 연결된 값이나 함수(메소드)를 의미
- 각 프로퍼티는 키(이름)와 값으로 구성
let person = { name: 'John', age: 30 };
프로퍼티 어트리뷰트(Property Attributes)
- 프로퍼티의 특성을 나타내는 메타데이터
- 값, 쓰기 가능 여부, 열거 가능 여부, 구성 가능 여부 등이 포함
let descriptor = Object.getOwnPropertyDescriptor(person, 'name');
console.log(descriptor.configurable);
프로토타입 어트리뷰트(Prototype Attributes)
- 객체가 다른 객체로부터 속성을 상속받기 위해 사용하는 내부 링크([[Prototype]])
- 객체의 프로토타입을 가리키며, 프로토타입 체인을 형성하는 데 사용
let proto = Object.getPrototypeOf(person);
프로토타입 프로퍼티(Prototype Property)
- 주로 함수에 사용되며, 해당 함수로 생성된 객체의 프로토타입을 설정
- 생성자 함수를 사용해 객체를 생성할 때 이 프로퍼티가 가리키는 객체가 새 객체의 프로토타입으로 설정
function Person() {}
Person.prototype.sayHello = function() { console.log("Hello!"); };