JavaScript_javascript 팁에서 타이머 사용 예

WBOY
풀어 주다: 2016-05-16 16:49:31
원래의
1462명이 탐색했습니다.
코드 복사 코드는 다음과 같습니다.

function foo()
{
}
setInterval( "foo()", 1000 );

OO 기술을 사용하면 이렇게 할 수 있습니다.
복사 code 코드는 다음과 같습니다.

// constructor
function MyObj
{
function foo()
{
alert( this.data );

this.timer = foo;
this.data = "안녕하세요"

setInterval( "this.timer()" , 1000 );
}

function Another()
{
// 객체 생성 시 타이머 생성
var obj = new MyObj();


그런데 생각대로 되지 않네요. 그 이유는 setInterval() 함수가 변수 this를 인식하지 못하기 때문입니다. 해결 방법은 다음과 같을 수 있습니다.


코드 복사 코드는 다음과 같습니다. function Another()
{
var obj = nw MyObj();
setInterval( "obj.timer()", 1000 );
}


분명히 제대로 작동할 수 있지만 완벽주의자 그렇지 않으면 만족하지 못할 것입니다. 다행히도 양식을 약간 변경하여 이 작업을 생성자에 넣을 수 있습니다.


코드 복사 코드는 다음과 같습니다. // 생성자
function MyObj
{
function foo()
{
alert( this.data )
}

this.timer =
this.data = "안녕하세요" ;

var self = this;
setInterval( function() { self.timer(); }, 1000 )

function Another()
{
var obj = new MyObj();

}


자, 클로저를 사용하면 끝입니다. 그 이유에 대해서는 독자들의 생각에 맡기고 싶다.

마지막으로 다양한 테스트 케이스의 예를 들어보겠습니다.




코드 복사
코드는 다음과 같습니다. head> </div>Hello Timer <div class="codebody" id="code8425">


<입력 유형 = "버튼" OnClick() " value = "나를 클릭하세요">



관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿