일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준
- 스택
- Spring
- Rails
- Eclipse
- Network
- functional programming
- 겨울카카오인턴
- Python
- DesignPattern
- tcp
- solid
- 자바
- javscript
- Pattern
- 파이썬
- 큐
- 디자인패턴
- 함수형 프로그래밍
- exception
- lambda calculus
- Collections
- 프로그래머스
- 로버트마틴
- design-pattern
- 람다 칼큘러스
- Collection
- Java
- JDBC
- JavaScript
Archives
- Today
- Total
개발자 노트
[Javascript] 함수에 bind()가 안 묶인 경우 본문
현상
var tabUI = {
controller :
{
ajaxProduct: function(){
console.log(this);
}.bind(tabUI)
}
}
tabUI.controller.ajaxProduct(); //return : Window
tabUI.controller.ajaxProduct.bind(tabUI)(); // return : Window
위처럼 tabUI로 bind를 했음에도 결과는 Window가 나왔습니다.
원인
자바스크립트의 위 과정 작동 과정은 다음과 같습니다.
1.객체초기화
2.변수에 객체 할당
{a : 1, ....} 는 객체는 초기화하는 literal입니다.
따라서 객체를 초기화하는 중에는 tabUI가 존재하지 않습니다...
해결
고민 중입니다.. controller라는 property를 따로 만들어서 함수를 관리해주고 싶은데 tabUI를 초기화 중에 못넣습니다. 위와 같은 이유 또는 this를 넣는다 하더라도 controller가 this가 되기 때문입니다. 따라서 나중에 초기화하도록 만들어야 하는데 이러면 같은 역할을 하는 값들이 한 군데로 못 묶기 때문에 지저분해질 수 밖에 없죠...
후... 자바스크립트는 특히나 사람들이 어떻게 하는지좀 봐야겠습니다. 관련 서적좀 구매해야겠어요
자바스트크립트는 코드 스타일이 너무 다양해질 수 밖에 없는 것 같습니다...
반응형
'Web' 카테고리의 다른 글
[Browser] 크롬에서 console.log가 안되는 경우 (0) | 2020.06.16 |
---|---|
[Javascript]Transition 작동문제(infinite sliding window...) (0) | 2020.06.15 |
[Junit]testCode 참고자료 (0) | 2020.06.05 |
[Spring]Spring 문서 주소 (0) | 2020.06.04 |
[Spring] Field Injection에 의한 순환 참조 오류 (0) | 2020.06.01 |
Comments