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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Vue.js】컴포넌트의 3개의 네비게이션 가드일에서 사용하게 되었기 때문에 1부터 Vue.js에 대해 배웠다. 그 이름에서 알 수 있듯이 무언가를 가드하기위한 처리로, 대체로 페이지 천이 전에 특정 처리를 실행시켜 페이지 천이시키지 않게 한다. Vue.js의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.