2016-10-06 3 views
2

this is undefined in console "this"는 devtool 콘솔에서 정의되지 않았지만 분명히 정의되지 않았습니다. devtools의 버그 일 수 있습니까?이것은 정의되지 않은 경우에도 devtools에서 정의되지 않았습니다.

+2

예, 더 OS 적은 ... 나는 정확히 설명하는 방법을 모르겠어요 ... 문제는 당신이 "검사"하는 코드가 실제로 ECMAScript를 5 만이다 인 "보고있는"코드는 ES6입니다. 콘솔에'this'를 입력하면 브라우저는'this' 변수를 보여 주려고하지만 souce-code에는'this' 변수가 없습니다. 보통 transpiler는'_this'를 사용합니다 ...'this '시도'_this' 그리고 올바른 값을 볼 것입니다 –

+0

고마워, 네 말이 맞아. 유일한 차이점은 제 경우에는 그것이 마치 보이는 것입니다. – Sathees

+1

네, 여러 가지에 달려 있습니다 ... 번역 된 코드 (ES5)를보고 변수의 실제 이름을 확인하십시오 –

답변

0

당신은 ES6/ES2015 + 코드 (소스지도를 위해 감사) 그리고, this 속성이없는 원본에서 보는 것과 동일한 실제 코드 덜 읽을 수 ES5 - transpiled 코드에하지 검사되기 때문에 암호.

당신이 찾고있는 컨텍스트를 찾을 수있는 콘솔 등 _this, _this1, _this2 평가를 시도하고, this에 액세스 할 수 있습니다.

const loaded =() => { 
    this.setState({ loading: false }); 
}; 

// will be compiled/transpiled to 

var _this = this; 
var loaded = function loaded() { 
    _this.setState({ loading: false }); 
}; 

참조 : https://www.sitepoint.com/bind-javascripts-this-keyword-react/

관련 문제