강의

멘토링

커뮤니티

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

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

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

Trường đào tạo bắn tỉa JS để thực hiện các cuộc phỏng vấn viết mã

Giám đốc nhà máy đối tượng, < hàm tạo >

생성자 함수관련...

Viết

·

212

2

강의에서 정정해주시면 좋을것같아 의견드려요.
var myFoo1 = Food('파스타') 처럼 new 키워드를 제거하는 경우 Food는 생성자의 기능이 아닌 함수로 작동하게됩니다. 즉 함수 Food는 리턴하는 키워드가 존재하지 않으므로 undefined를 반환하게 되고, 이것은 this와는 전혀 상관없다고 생각합니다. es5코드로 작성하셨으니 es5기준으로 동작을 말씀드리자면...
1. Food함수가 실행 시 좌측에 별다른 식별자가 존재하지 않으므로 Food함수 내부의 this는 window객체를 가르킨다.(use strict 사용시 null 출력)
2. 아래 코드는 다음과 같다.
this.name = name; window.name = name;
this.smell = function() {...}; window.smell = function() {...}
3. Food 함수내에 반환하는것이 없으므로 undefined를 반환..
var myFood1 = Food('블라블라');
myFood1. 으로 접근 시 에러 발생.. 즉 이것은 this가 name or smell이 존재하지 않아서 발생하서가 아닌 undefined로부터 name or smell을 접근하려고 하니 발생하는 에러라고 생각합니다.
 
혹시 제가 틀린부분이나 영상에서 제가 잘못오이해한부분이 있다면 피드백 감사하겠습니다.
javascript코테 준비 같이 해요!

Câu trả lời 1

0

Hojun Lee님의 프로필 이미지
Hojun Lee
Người chia sẻ kiến thức

아이고 역시 날카롭게 지적해주셨군요... 맞습니다. 다른 학생분도 지적해주셨던 내용인데요... return 없는 함수이기 때문에 undefined를 반환하니 this 랑은 전혀 상관이 없게 되는게 맞습니다..;;

빨리 재촬영 해야한다고 생각했는데 자꾸 늦어졌군요 ㅠㅠ  좋은 지적 감사합니다!

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

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

Đặt câu hỏi