강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hyobinkim
hyobinkim

câu hỏi đã được viết

Người mới bắt đầu sử dụng JavaScript: Xây dựng nền tảng cơ bản vững chắc

4. getter và setter, thuộc tính get, thuộc tính set

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

Viết

·

166

1

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

 

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

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

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

oopjavascript

Câu trả lời 1

0

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책이 어떻게 자동적으로(?) 할당됐는지가 궁금하네요...

Hình ảnh hồ sơ của hyobinkim
hyobinkim

câu hỏi đã được viết

Đặt câu hỏi