inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

3. Object 인스턴스 생성, 프리미티브 값 구하기

Object 생성 방법에 대해 질문입니다.

183

레테

작성한 질문수 10

0

리터럴 방식 또한 인스턴스를 생성한다는게 이해가 가지 않습니다.

저는 지난강의 때문에 리터럴 방식이 당연히 인스턴스를 생성하지 않는다고 생각했거든요

지난 강의(length값이 반환되는 논리 편)의 예제입니다.

var value = "ABC";

console.log(value.length);

엔진이 value.length 를 만나면 내부에서 new String("ABC")을 하게되며 생성한 인스턴스의 length 값인 3을 반환한다고 하셨는데요.

만약 리터럴이 인스턴스를 생성한다면 굳이 내부에서 new String("ABC")로 또 한번 인스턴스를 생성할 필요가 없지않나요?

그리고 리터럴 방식이 인스턴스가 맞다면 value에 length라든가 이런저런 함수들이 있어야하는데 개발자도구 local 부분에서 value변수는 더이상 전개 불가했습니다. 

어떻게 된건지 궁금합니다..!

oop javascript

답변 1

1

김영보

"ABC"는 문자열 값이지 리터럴이 아닙니다. var obj = { }를 Object 리터럴이라하고, var list = [ ]를 Array 리터럴이라고 합니다. 이것은 new Object(), new Array()와 같습니다.

value.split("")일 때 내부에서 String 인스턴스를 만들어 split()를 실행합니다. 왜냐하면 메소드가 속한 오브젝트가 있어야 메소드를 실행할 수 때문입니다. 이때 생성한 인스턴스를 반환합니다.

value.length 형태도 내부에서 인스턴스를 생성합니다. 왜냐하면 오브젝트에 속한 length 값을 반환할 수 있기 때문입니다. Array 오브젝트의 length는 엘리먼트 수를 반환하고 String 오브젝트의 length는 문자 수를 반환합니다. 이때 생성한 인스턴스를 반환하지 않고 값을 반환합니다.

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

2

109

2

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

1

148

2

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

0

140

2

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

1

246

1

선생님 Objcet 질문 있습니다.

0

299

2

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

0

616

1

sort 코딩 시간 풀이

0

292

1

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

0

229

1

인덱스 코딩시간 문제풀이

0

381

1

for문 코딩 시간 답제출

0

306

1

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

0

194

0

퀴즈 질문 및 정답

0

356

1

오브젝트

0

283

1

인스턴스 목적

1

239

1

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

0

269

1

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

0

194

1

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

0

1031

5

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

0

211

1

상수 변수 선언에 대해

0

235

1

코딩 시간 (for문) 풀이

0

255

1

Object vs object

1

498

1

코딩 시간 풀이입니다.

0

195

1

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

0

177

1

코딩시간 답 제출

0

196

1