inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발

검색폼 구현 1

안녕하세요 2가지 질문드립니다!

283

한아링

작성한 질문수 23

1

안녕하세요 수강 중 궁금한 사항 질문드립니다~

질문1)

FormView.js 파일 아래 코드에서

import View from './View.js';

const tag = '[FormView]';

const FormView = Object.create(View); // 객체를 생성함

FormView.setup = function(el) { // el 받아서 내부적으로 속성으로 갖게할꺼임
  this.init(el)
  this.inputEl = el.querySelector('[type=text]')
  this.resetEl = el.querySelector('[type=reset]')
  this.showResetBtn(false); // 숨길꺼니깐 false로 넘겨줌
}

const FormView = Object.create(View) 로 객체?를 생성 후 여기서 this로 메서드를 추가하셨는데

혹시 그냥 View.init(el) 이런식으로 하면 안되는건지 질문드립니다! 

질문2)

View.js 에서 throw el 은 어떤 역할인건지 궁금합니다.. 

그럼 답변부탁드릴게요 감사합니당

javascript vuejs

답변 2

4

김정환

질문 1:

Object.create(proto)는 인자로 전달한 프로토타입과 속성을 갖는 객체를 생성하는 함수입니다. View 객체의 메소드를 FormView에 추가하려는 의도입니다. setup 합수에 this.init() 으로 View 객체의 메소드를 사용할수 있는 이유가 이것 때문이고요. 브라우져로 확인하면 FormView.__proto__ 에 View 객체가 복사되어 있는걸 확인하실 수 있습니다.

질문2:

View의 init() 함수는 el 인자를 받도록 강제하는 기법입니다. el 인자 없이 호출할 경우 바로 예외를 던져 버리는 거죠. 이 예외를 처리하기도 하고 그렇지 않으면 바로 문제의 원인을 알 수 있습니다.

0

user

삭제된 글입니다

0

김정환

죄송합니다. 저도 둘의 차이를 정확히 구별하지 못하겠네요 ㅜㅜ

강사님, 브랜치명 어떻게 만드셨어요?

2

209

1

이미지 파일 업데이트가 안돼있는 거 같습니다

1

502

1

git사용법을 잘 모르겠습니다..

1

495

1

@event 질문입니다.

1

254

1

return 문자열이 여러줄은 어떻게 설정하나요?

1

645

2

탭뷰에서 이벤트를 받아서 메인컨트롤러에게 전달만해주는 방식도 괜찮나요?

1

257

1

ResultComponent.vue 에러?

1

251

1

선생님 안녕하세요!

0

247

1

return new Promise 와 return Promise.resolve

2

474

1

바닐라

1

320

1

실습 관련 질무

1

248

1

event.preventDefault() 문의

1

289

1

컴퍼넌트 질문이 있습니다.

0

209

1

return this에 대해서 (재업로드)

0

355

1

return this에 대해서 이해가 잘 되지 않아요

0

1175

1

강의 내용을 따라 했는데도 안되는 문제

1

308

2

크롬으로 로컬 띄었더니 에러가나네요

1

322

0

에러가 나네요

1

328

2

git checkout 중에 질문드립니다.

1

302

1

bindEvent 메소드를 왜추가하는지 궁금해서 질문드립니다.

2

576

1

안녕하세요 vue.js 처음 입문하는데 강사님 강의로 시작하게 되었습니다.

0

215

1

index 페이지에서 main.js 관련 질문입니다

1

199

1

학습내용 정리 관련 질문입니다!

0

176

1

lite-server로 구현해야하는 이유는 무엇인가요~?

1

517

2