2017-04-23 7 views
0

학습 일부 TypeScript. 코드 작업이 비트 만들려고 노력 :이 오류를 얻기가변 범위를 조작하는 방법?

... 
ocrText: string; 
... 
foo() { 
    Tesseract.recognize(<Tesseract.ImageLike>document.getElementById('image')) 
     .then(function(result) { 
      console.log(result); 
      this.ocrText = result.text; 
     }); 
} 

: Uncaught TypeError: Cannot set property 'ocrText' of undefined

콘솔 로그 개체 속성 및 값을 보여 않습니다를.

'텍스트'속성의 로컬 값을 '결과'개체에서 전역 범위로 추출하는 방법은 무엇입니까?

+0

이 태그는 TypeScript와 아무런 관련이 없습니다. –

답변

0

사용 window 대신 this :

var Text = ''; 
(()=> fetch('www.example.com') 
.then(response => response.text()) 
.then(text => window.Text=text))(); 

가 타이프에 대해 너무 많이 알고하지 마십시오,하지만 난 대신 글로벌 window 객체에 디폴트로 정의되지 thisstrict mode을 사용하고 같은데요하지 않을 경우 클래스 인스턴스의 컨텍스트에서 사용됩니다.

+0

by this는 변수 및 함수의 최상위 선언을 가정합니다. 전역 범위에서 작업하지 않는다면'window.'를 생략하면 범위를 둘러싸고있는 범위를 참조하게됩니다. –