📌 객체의 프로퍼티와 메서드의 역할에 대해서 설명해주세요
▶️ 객체이름
- 생성된 객체의 변수 이름 또는 참조 이름입니다. 이 변수를 통해 객체에 접근할 수 있습니다.
▶️ 프로퍼티
- 프로퍼티는 객체의 특징이나 속성을 나타내며, 프로퍼티 이름과 해당 값으로 구성됩니다.
▶️ 메서드
- 메서드는 객체가 수행하는 동작을 정의하는 함수입니다. 메서드는 프로퍼티로서 함수를 할당하는 형태로 정의할 수 있습니다.
📌 ES6에서 추가된 객체 리터럴의 확장 기능은?
▶️ 프로퍼티의 축약 표현
<script>
var x = 1, y = 2;
var obj = {
x: x,
y: y
};
console.log(obj);
ley x =1, y = 2;
const obj = { x, y };
console.log(obj);
</script>
▶️ 계산된 프로퍼티 이름
<script>
var prefix = 'prop';
var i = 0;
var obj = {};
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
obj[prefix + '-' + ++i] = i;
console.log(obj);
var obj = {
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i,
[`${prefix}-${++i}`]: i
}
console.log(obj);
</script>
▶️ 메서드 축약 표현
<script>
var obj = {
name: 'Lee',
sayHi: function() {
console.log('Hi! ' + this.name);
}
};
obj.sayHi();
var obj = {
name: 'Lee',
sayHi() {
console.log('Hi! ' + this.name);
}
};
obj.sayHi();
</script>
📌 객체 리터럴이란 무엇인가요?
- 객체 리터럴은 JS에서 객체를 만드는 방법 중 하나입니다.
- 객체 리터럴은 중괄호 {}를 사용하여 객체를 생성하고, 프로퍼티와 메서드를 포함하는 표기법입니다.
- 이를 통해 간편하게 객체를 초기화하고 정의할 수 있습니다.
- 예시
const 객체이름 = {
프로퍼티1: 값1,
프로퍼티2: 값2,
메서드1() {
},
메서드2: function() {
},
};
📌 인스턴스란 무엇인가요?
- 인스턴스(Instance)는 객체 지향 프로그래밍에서 클래스의 복사본을 나타냅니다. 클래스는 객체를 생성하기 위한 템플릿이며, 인스턴스는 이 템플릿을 기반으로 생성된 객체입니다.
class NumberManipulator {
constructor(initialNumber) {
this.number = initialNumber;
}
add(value) {
this.number += value;
}
}
const calculator = new NumberManipulator(10);
calculator.add(5);
console.log(calculator.number);
📌 네이티브 객체와 호스트 객체에 대해 설명해 주세요.
▶️ 네이티브 객체
- JavaScript 언어 자체에서 제공하는 기본 객체들을 의미하며, 예를 들어 Array, String, Number 등이 있습니다.
- 이러한 객체들은 JavaScript 엔진에 내장되어 있으며 모든 JavaScript 환경에서 동일하게 동작합니다.
▶️ 호스트 객체
- 호스트 객체(Host Objects)는 JavaScript 환경(웹 브라우저, Node.js 등)에서 제공하는 객체들을 나타냅니다.
- 환경에 따라 다양하게 다를 수 있으며, 예를 들어 웹 브라우저 환경에서는 window, document, XMLHttpRequest 등의 호스트 객체가 있습니다. 호스트 객체는 환경에 따라 제공되는 기능을 지원하며, 환경별로 다를 수 있습니다.