es6 클래스에서 호출 귀속

1190 단어 프런트 엔드
원초적 인 묘사 는 문제 가 없다
 function tick() {
            viewer.scene.render();
            console.log(ppp)
            if (ppp !== false) Cesium.requestAnimationFrame(tick);
            oceansurfclass.currentTime = (viewer.clock.currentTime.secondsOfDay - 14437) / 300.0;
            // console.log(oceansurfclass);
        }
  tick();

es6--클래스에서 호출이 다음 글꼴로 돌아가는 오류가 발생했습니다. 두 번째 호출 시 -this가 가리키는 것은 더 이상 실례화된 대상이 아니라 비어 있기 때문에 이 때 Cesium입니다.requestAnimationFrame(_this.tick1)에서 _this.tick1은 오류를 보고합니다.
tick1() {
     var _this = this;
      viewer.scene.render();
      console.log(_this)
      if (_this.ppp !== false) Cesium.requestAnimationFrame(_this.tick1);
      _this.currentTime = (viewer.clock.currentTime.secondsOfDay - 14437) / 300.0;
      }

그래서 해결 방법은bind를 이용하여this를tick1() 함수에 전달하는 것입니다. 이렇게 계속 호출할 때this는 영원히 실례화 대상을 가리킵니다.
tick1() {
     var _this = this;
      viewer.scene.render();
      console.log(_this.ppp)
      if (_this.ppp !== false) Cesium.requestAnimationFrame(_this.tick1.bind(_this));
      _this.currentTime = (viewer.clock.currentTime.secondsOfDay - 14437) / 300.0;
      }

좋은 웹페이지 즐겨찾기