[TIL] Javascript-7
1. 코드카타 : 두번의 for을 사용하여 두번 순회하는 경우, 함수의 선언 위치도 중요하다.
var sum=[]; 을 var answer=[]; 뒤에 선언할 경우 결과값이 두번 반복해서 나오게 된다.
2. this binding
this binding을 call을 사용하는 경우. call은 thisArg 또는 global을 결과로 나타내게 되어있다.
this.length에서의 this는 제시된 배열에 해당한다.
thisArg가 존재하면 this가 제시된 배열에 바인딩한다. => this에 다른 값을 담을 수 있다.
따라서 같은 조건의 다른 값을 제시할 수 있다.
0
2
=============
1
4
=============
2. self를 이용한 this binding
this를 사용하여 함수를 self를 this 값으로 할당하고, 새로운 객체를 생성하는 것을 배웠다.
self는 return에 있는 함수 바깥에 있음에도 불구하고 영향을 준다.
그 과정에서callback 함수를 이전값을 참고, 변화시킨 후 적용을 시도해보았다.
결과
undefined부들
undefined부들
obj4폭신
obj4
undefined폭신
undefined
적용된 결과 에러는 발생하지 않았고, obj2.name에 값이 잘 할당되었음을 알 수 있다.
또한 undefined부들은 self 이전의 매개변수에 영향을 받지 않았음을 나타낸다.
obj3가 사라지고 obj4만 나타난 것은 변화된 값이 obj4에만 할당되었기 때문이다.
만약 call이 없다면 어떻게 될까 적용해보았다.
[object Object]부들
undefined폭신
undefined
name과는 상관 없이 객체가 모두 들어갔으며, this에도 할당이 되지 않음을 알 수 있다.
결론적으로 this 할당을 좀 더 이해하게 되었으며, call에 대한 개념도 점점 잡혀가는 것 같다.