공부

190316 1차시 수업내용 - javascript 개괄, prototype, Form Component

190316 1차시 수업내용 - javascript 개괄, prototype, Form Component


--


1. 컴파일단계(선언부)와 실행단계를 나눠서 생각한다.

(선언부와 function 함수 실행 단계)

2. 컴파일 단계(Compilation Phase)에서는 선언만 본다.

3. 실행 단계(Execution Phase)에서 실제 값이 결정된다.


코드 (블럭)를 해석할때 선언만 보고 실행한다.

선언이(var) 없으면 컴파일 단계 먼저 내려오고 실행 단계에서 값을 저장한다.

컴파일 -> 실행 -> 컴파일 -> 실행






<prototype>


prototype 객체의 출발이 되는 원형, 출발점, 상속을 시켜주는 객체

proto = first

type = form


1. prototype은 객체다. {}

2. constructor(생성자)는 함수다. ()

3. 함수 선언시 둘은 쌍(=)이다.



생성자 호출이 어떤 의미를 갖는가?

1. 함수 호출에는 두가지가 있다.

2. new로 생성된 객체는 생성자 함수로 prototype property로 안보이는 링크를 가진다.


생성자 호출을 하면 객체가 하나 생성이 된다.

함수를 선언한다 쌍이되는 객체가 하나 만들어진다. 각각이 서로를 마주보는것이다.





<prototype chain>

1. 모든 객체는 안보이는 링크를 하나 가진다.

2.안 보이는 링크를 타고 올라가면, 가장 위에는 object.prototype이 있다. (prototype chain)

3. property를 찾을때 자기 자신의 property를 보고 없으면 chain을 타고 올라가면서 찾는다.



 상속 프로토타입의 체인을 만들고 싶으면

teacher.prototype = object.create(person.prototype);



12번째 줄

lengthOfArrays = function(arrs) {

    /* @ANSWER_STARTS */ 

    return arrs.map(arr => arr.length);

    /* @ANSWER_ENDS */

}




++++++++++++



위의 코드를 보면 c함수는 b를 상속하고 있고, b객체는 a를 상속하고 있습니다.

그런데 var sum은 지역변수 입니다.

지역변수의 특징은 해당 함수를 떠날 수 없다는 것에 있습니다.

그렇다면 상속관계에 놓여져 있을 때 변수를 선언할 수 있는 방법은 없을까요?

하나는 this를 이용하는 방법, 또 하나는 prototype을 이용하는 방법입니다.




10행의 선언은 상속관계에 놓인 모든 곳에서 저 변수를 사용할 수 있도록 했습니다.






-prototype reference

https://blog.naver.com/fb_lua/221458667260