Javascript 핵심 개념 알아보기 - JS Flow

Javascript 핵심 개념 알아보기 - JS Flow

(79개의 수강평)

1131명의 수강생
15,400원
지식공유자 · 정재남
15회 수업 · 총 1시간 20분 수업
평생 무제한 시청
수료증 발급 강좌
수강 난이도 '초급'
conchocco 프로필

Person 객체를 생성할 때 this사용법 문의 conchocco 11일 전

function Person(name, age) {

this.name= name;

this.age = age;

}

 Employee객체도 이런식으로 생성이 되어있는데 이 부분에서 궁금한 점이 있습니다.

this는 함수안에서 사용될 때는 window 혹은 global 객체를 가리키는 거라고 하셨는데 그럼 위 코드에선 this를 사용하나 사용하지 않으나 같은 상황이 아닐까, 어떤게 다른건가 궁금합니다.

this를 사용해도 window 객체를 가리키고 this를 사용하지 않아도 전역변수인거니까 결국은 같은 거 아닌가요..?

제가 어떤 걸 잘못이해하고 있는건지 알려주시면 감사하겠습니다.

1
류명한 프로필

extendClass 함수 구현시 IIFE를 사용하는 것과 그냥 일반 함수를 사용하는 것의 차이가 무엇인지 궁금합니다. 류명한 2달 전

var extendClass1 = (function() {
  function Bridge() {}
  return function(Parent, Child) {
    Bridge.prototype = Parent.prototype;
    Child.prototype = new Bridge();
    Child.prototyep.constructor = Child;
  }
})();

var extendClass2 = function() {
  function Bridge() {}
  return function (Parent, Child) {
    Bridge.prototype = Parent.prototype;
    Child.prototype = new Bridge();
    Child.prototype.constructor = Child;
  }
}

var extendClass3 =function (Parent, Child) {
  function Bridge(){};
  Bridge.prototype = Parent.prototype;
  Child.prototype = new Bridge();
  Child.prototype.constructor = Child;
}

위의 extendClass1, 2, 3의 차이가 무엇인지 궁금합니다. 

2
Dandyism 프로필

안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요? Dandyism 2달 전

안녕하세요 혹시 ppt 자료는 어디서 받을 수 있나요?

ppt를 프린트해서 정리해서 보고자 합니다.

1
류명한 프로필

혹시 곧 출간되는 책이랑은 뭐가 다른가요? 류명한 2달 전

안녕하세요. 

개발자님이 곧 책을 출판하시는 걸 알게 되었는데요. 곧 출간하실 책이랑 강의랑 목차가 같던데, 혹시 강의랑 책은 어떻게 다른가요? 책이 더 자세한 편인가요? 그리고 인사이드 자바스크립트랑은 어떻게 다른지도 궁금합니다! 좋은 강의 감사합니다. 

4
Haryun Hong 프로필

Bridge 없이 상속하는 부분에 관하여.. Haryun Hong 2달 전

안녕하세요. 설명해주신 강의 잘 들었습니다. 

수업을 듣다가 궁금한 점이 있어 질문을 드립니다. 

super 에 정의된 properties (name, age)를 상속하는 것을 피하기 위하여 bridge를 사용하였는데, 

이런식으로 Employee.prototype = Person.prototype 바로 넣으면, Bridge 없이 Person에 정의된prototype  만을 받을 수 있게 구현할 수 있는 것이 아닌가요? 

Employee.prototype = Person.prototype

Employee.prototype.constructor = Employee

Employee.prototype.getPosition = function(){return this.position}

 

 

 

 

1
pulp fiction 프로필

Prototype을 사용하여 Method를 추가하는 이유 pulp fiction 3달 전

안녕하세요 질문이 있어서 문의드립니다.

 

단순히 Person이라는 생성자로 생성된 Instance가 getOlder와 getAge라는 Method를 가지게 하는 것이 목적이라면 Prototype으로 나중에 추가할 필요 없이 

 

 

function Person(n, a) {
    this.name = n;
    this.age = a;
    this.setOlder = function( ...
    this.getAge = function(...
}

와 같은 방식으로 선언하면 되는 것 아닌가요? 굳이 Prototype을 통해 Method를 추가를 하는 이유가 궁금합니다.

1
정원준 프로필

클로저 예제가 이해되지 않습니다. 정원준 3달 전

강의 외적이지만, '인사이드 자바스크립트' 라는 책을 언급해주셨는데, 이 부분 중 클로저 부분이 이해되지 않습니다.

여기서 특히나 func ? func(this.greeting) : this.func(this.greeting);

부분이 더 이해되지 않습니다. 책보다 조금 더 쉽게 풀이해서 설명해주실 수 있을까요??

 

그리고 이 부분도 잘 모르겠습니다.


양이 너무 많나요? ㅠㅠ

여기부분 설명이 너무 불친절하다고 느껴집니다 

이해할 수 있는 키워드만이라도 적어주실 수 있을까요??

1
jackjack 프로필

호이스팅 우선순위 질문 jackjack 3달 전

변수선언과 함수선언 중 먼저 호이스팅되는 우선순위는 없나요?

1
Se Hyun Park 프로필

콜백과 프로미스의 관계는 무엇인가요? Se Hyun Park 7달 전

콜백이 시간이 오래 걸리는 일을 할 때 (예를 들면 데이터베이스에서 엄청난 양의 데이터를 가지고 온다거나, authentication 을 한다거나) 사용이 된다고 들었는데요, Promise 라는 것에 대해서도 배우게 되어 조금 헷갈립니다.

프로미스에 대한 글을 읽어보았지만 잘 이해가 되지 않습니다ㅠㅠ. 콜백과 프로미스의 차이가 명확하게 설명된 글이 있을까요? 강사님께서 설명해주셔도 정말 감사하겠습니다!

1
sualyer010 프로필

위 질문과 같은 질문입니다 [object Array]가 나오는이유 sualyer010 10달 전

arr.toString을 join("-")등을 넣어줘서 개조를 해도

arr.proto.toString.call(arr) 을 하면 1,2,3이 나오는이유는 이전 강의에서 말씀하신것처럼 this를 arr로 바인딩 해줬기 때문이라고 생각을 합니다. (언더바언더바는 입력해도 여기나오지않네요)

궁금한점은,

toString함수가 Object의 프로토타입에 정의되어있으니

arr.proto.toString 과 arr.proto.proto.toString는 같은 toString함수인데,

call을 이용해서 arr로 binding을 하면 동일하게 1,2,3이 나와야하지않나요??

[object Array]이 나오는 이유를 여쭤봐도될까요?

두 출력결과가 다른이유는 arr.proto.toString함수와 arr.proto.proto.toString가 다르다고 생각하면될까요?

toString함수는 Object.prototype에 정의되어있는게 맞는데 그걸 그대로상속안하고 Array.prototype.toString으로 재정의해주었다고 보면되는건가요?

1
박우림 프로필

클래스 상속 질문입니다. 박우림 2018.11.11

Person 클래스에서 getName 과 getAge 를 정의할때 Person.prototype안에 정의하셨는데, 그렇게 해야하는 특별한 이유가 있는지요 ?

function Person(name, age) {

this.name = name || 'noname';

this.age = age || 'noage';

this.getName = function(){ return this.name; }

this.getAge = function(){ return this.age; }

}

이렇게 Person 클래스안에 바로 정의해서 쓰면 안되는 건가요 ?

직접 해보니까 메소드 상속은 똑같이 이루어 지고 해당 메소드를 바로 볼 수 있냐 아니면 prototype을 타고 위로 올라가서 봐야하냐의 차이밖에 없는거 같은데...

2
Tae Hyun Ahn 프로필

primitive type의 값 변경 시 원리 질문드립니다. (immutable) Tae Hyun Ahn 2018.11.06

안녕하세요.

동영상 강의를 들으면서 인터넷 자료 참고하다 이해 안되는 부분이 있어 질문 드립니다.

우선 primitive type은 immutable value라는 자료를 봤습니다.

immutable value란, "값을 재할당은 할 수 있지만, 메모리 영역에서의 변경이 불가능"임으로 이해를 했습니다.

그렇다면 들어주신 예시 중

var b = 'abc';
b = false;

구문이 실행될 때,

b가 가리키고 있던 314 주소의 값 'abc'가 바로 false로 변경되는 것이 아니라,

316 주소(새로운 주소)에 false 값이 들어가고, b가 가리키는 주소가 314에서 316으로 변경되는 것은 아닌지..헷갈려서 질문드렸습니다.

강의 잘 듣고 있습니다.

감사합니다.

2
hyuk22 프로필

[object Object] 이렇게 출력되는 이유가 뭔가요? hyuk22 2018.11.05

기존 toString() 함수를 호출하면 왜 저렇게 출력되는지 궁금합니다.

1
hyuk22 프로필

var self = this 를 bind 메소드로 바꿔보는 도중에 궁금한 것이 있습니다. hyuk22 2018.10.28

강의에서 var self = this를 bind함수로 대신 할 수 있다 하셔서 앞선 예제에 적용을 해봤는데 아래의 코드에서 왜 출력이 10이되는지 잘 모르겠습니다ㅠㅠ

var a = 10;

var obj = {

a: 20,

b: function() {

var c = function() {

console.log(this.a);

}

c.bind(this);

c();

}

}

obj.b();

1
김승원 프로필

함수선언문은 그럼 아예 안쓰는게 낫나요? 김승원 2018.09.03

함수 선언문보다 함수표현식을 쓰는게 더 바람직하다고 하셨는데, 그럼 선언문 말고

함수표현식만으로 함수를 구성해도되나요? 아니면 선언문이 꼭 필요할때가 있나요?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강좌들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스