inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 비기너: 튼튼한 기본 만들기

4. getter와 setter, get 속성, set 속성

두개의 오브젝트를 써야하는 이유

169

Hyobin Kim

작성한 질문수 81

1

강의 보다가 set 부분에서 의문이 들어서 실험을 해봤는데요

 

예시에서 obj = {}, data = {} 이렇게 두가지 오브젝트를 사용하셨잖아요 

저는 obj하나만 써서, Book의 get/set을 정의 할 때도, 데이터를 집어 넣고 빼고 하는 대상도 obj의 Book으로 설정을 하니까 마치 출구없는 재귀함수 처럼 스택 오버 플로우가 생기더군요

그래서 두개의 오브젝트를 써야하는 구나 싶은데 구체적인 이유를 잘 모르겠습니다

oop javascript

답변 1

0

Gin-Kyeng Lee

let obj = {}
Object.defineProperty(obj, "book", {
	set : function(param){
		obj.title = param.toUpperCase(); // parameter를 받아 대문자로 바꿔줌
	},
	get : function(){
		return obj.title;
	}
});

obj.book = "jsbook"
console.log(obj.book); //JSBOOK

저도 이 부분이 궁금해서 실제로 코드를 작성해보았는데, 이렇게 작성해도 결과물은 잘나오더라구요. 두 오브젝트를 활용한 이유가 저도 매우 궁금합니다...

그리고 또 하나의 의문은,  data라는 새로운 오브젝트를 사용했고, defineProperty 내에 이 data의 프로퍼티 값을 작성하고나서, data의 프로퍼티를 obj의 프로퍼티로 복사하거나 옮긴적이 없는데, obj의 book property value에 JS책이 어떻게 자동적으로(?) 할당됐는지가 궁금하네요...

프론트엔드 부트캠프 가기 전, 짧은 감사 인사드립니다!

2

112

2

섹션10 3. Object 프리미티브 값 구하기에서 질문있습니다.

1

155

2

섹션3의 1강 연산자, 표현식 강의에서 표현식 질문이 있습니다.

0

143

2

섹션 1. 6번째 강의 질문입니다.

1

249

1

선생님 Objcet 질문 있습니다.

0

300

2

forEach문을 활용한 코딩시간 풀이

0

617

1

sort 코딩 시간 풀이

0

293

1

코딩 시간 풀이 올려봅니다.

0

231

1

인덱스 코딩시간 문제풀이

0

383

1

for문 코딩 시간 답제출

0

310

1

3:39 sort에 들어가서 one,two 파라미터질문입니다.

0

197

0

퀴즈 질문 및 정답

0

359

1

오브젝트

0

288

1

인스턴스 목적

1

243

1

[코딩시간 01] 3항 연산자로 작성했을 때, 각 값..?

0

272

1

Undefined === Null; // true???

0

195

1

indexOf의 파라미터에 음수를 작성 했을때에 대한 질문입니다.

0

1032

5

length 값 변환 논리에 대한 질문입니다.

0

215

1

상수 변수 선언에 대해

0

238

1

코딩 시간 (for문) 풀이

0

257

1

Object vs object

1

503

1

코딩 시간 풀이입니다.

0

203

1

log(add(1, 2, 3, 4));

0

186

1

코딩시간 답 제출

0

201

1