setTimeout 콜백에 올바른 "this" 컨텍스트 전달
질문:
어떻게 할 수 있나요? setTimeout 콜백 함수 내에서 클래스 메소드를 실행하여 컨텍스트를 유지합니다. (즉, "this") 클래스?
문맥 설명:
setTimeout을 사용할 때 "this" 변수는 전역 개체(창)를 참조합니다. 이는 클래스 속성에 액세스하려고 할 때 원하는 동작이 아닙니다.
답변:
방법 1: 로컬 참조 저장
var that = this; if (this.options.destroyOnHide) { setTimeout(function(){ that.tip.destroy() }, 1000); }
방법 2: 사용 바인딩()
if (this.options.destroyOnHide) { setTimeout(function(){ this.tip.destroy() }.bind(this), 1000); }
방법 3: 화살표 함수 사용(ES6)
if (this.options.destroyOnHide) { setTimeout(() => { this.tip.destroy() }, 1000); }
방법 4: setTimeout에 인수 전달 (HTML5)
if (this.options.destroyOnHide) { setTimeout(function(that){ that.tip.destroy() }, 1000, this); }
추가 자료:
위 내용은 setTimeout 콜백에서 'this' 컨텍스트를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!