2017-04-06 1 views
0

이 문맥에서 'this'의 의미에 대한 설명을 찾고 있습니다. 왜 Ajax 요청 후에 'this'를 콜백에 바인딩해야합니까? 디버거를 확인할 때 바인드 여부를 '생성자'에 바인드되는지 여부를 'this'라고합니다. 기본적으로이 this가 가리 때문이다componentDidMount()에서 'this'의 의미, ReactJS

var BugList = React.createClass({ 
getInitialState: function() { 
    return { 
     bugs: [] 
    } 
}, 

componentDidMount: function() { 

    $.ajax('/api/bugs').done(function(data) { 
     this.setState({ 
      bugs: JSON.parse(data) 
     }); 
    }.bind(this)); 
}, 
+0

관련 : http://stackoverflow.com/questions/6889855/jquery-ajax-success-doesnt-work-with-this?noredirect=1&lq=1 –

+0

관련 : http://stackoverflow.com/a/33381852/2733506 –

+0

* "디버거를 검사 할 때 바인드 여부에 관계없이 'this'가 생성자에 바인딩됩니다. * -이게 무슨 의미인가요? 예제에는 생성자가 없습니다. 'this'의 바인딩? – Aaron

답변

0

: 현재 실행 콘텍스트의 ThisBinding의

값;

사용자의 컨텍스트가 콜백이 실제로 실행되는 동안 변경되므로

this 것이다 하지BugList의 현재 인스턴스를 참조.

.bind(this)은 본질적으로 선언 당신이 볼 것을 권 해드립니다

문맥,이 기능이 생성 된 곳의 문맥을 의미하는 this 설정에 상관없이 (BugList.) 그 : Standard ECMA-262Scopes in JS . 이 개념에 대한 자세한 설명은!

+0

-1을 설명 할 수 있습니까? –

+0

* "이 답변은 유용하지 않습니다 (다시 실행하려면 클릭하십시오)"* –

관련 문제