홈>
0에서 9까지 숫자를 구할 수있는이 코드가 있습니다
var countup = {
i: 0,
startCount: function () {
for(i = 0; i < 10; i++){
console.log(i);
}
}
}
countup.startCount();
이제 1 초 간격으로 숫자를 출력 할 수 있어야합니다. 아래 코드를 시도하여 정의되지 않은 출력을 제공합니다.
var countup = {
i: 0,
startCount: function () {
setInterval(function() {
for(i = 0; i < 10; i++){
console.log(i);
}
}, 1000)
}
}
countup.startCount();
1 초 간격으로 원하는 숫자 0-9를 출력하도록 위의 코드를 편집하는 방법을 아는 사람이 있습니까?
감사합니다!
- 답변 # 1
- 답변 # 2
See the second and third snippets for better answers.
setInterval
를 사용하여 이렇게 할 수 있습니다 그리고clearInterval
카운트가 10에 도달하면 변수i
에 액세스 카운트 업 개체에서this.i
로 할 수 있습니다 :const countup = { i: 0, startCount: function() { const timer = setInterval(() => { console.log(this.i); if (++this.i === 10) { clearInterval(timer); } }, 1000); } } countup.startCount();
@ Hit-or-miss가 언급 한대로,
this
정적 객체에는 사용하지 않아야합니다.prototype
를 사용하여 더 좋은 방법이 있습니다. .이것은 내부 카운트를 공유하지 않는 여러 카운터를 가질 수있게합니다.
function Countup() { this.i = 0; } Countup.prototype = { constructor: Countup, // Good practice startCount: function() { const timer = setInterval(() => { console.log(this.i); if (++this.i === 10) { clearInterval(timer); } }, 1000); } }; const counter1 = new Countup(); const counter2 = new Countup(); counter1.startCount(); counter2.startCount();
또는자바 스크립트 클래스사용 :
와이즈 비즈The arrow functions and classes are supported only in modern browsers.
class Countup { constructor() { this.i = 0; } startCount() { const timer = setInterval(() => { console.log(this.i); if (++this.i === 10) { clearInterval(timer); } }, 1000); } }; const counter1 = new Countup(); const counter2 = new Countup(); counter1.startCount(); counter2.startCount();
관련 자료
- Javascript의 메서드 내에서 'return'을 사용하는 경우
- 배열이있는 JavaScript SetInterval () 함수
- c++ - 해시 테이블 - 크기 조정 방법에 다시 해시 추가
- java - junit - 다른 메서드 내부에서 호출 된 메서드 모의
- html - 자바 스크립트에서 값을 비교하는 방법이 있습니까?
- ruby on rails - 코쿤으로 필드를 추가 한 후 자바 스크립트 기능 실행
- html - 웹 페이지에서 오디오를 재생하는 자바 스크립트 방법
- JavaScript split () 메서드의 혼동
- javascript - forEach 내부에서 문자열 교체 방법 사용
- computer science - Javascript에서 문자열을 분리 할 때 분할 후 각 문자열에 대해 메서드를 어떻게 실행해야합니까?
- loops - 목록의 javascript link () 메소드 출력
- html - 자바 스크립트의 다른 함수로 setInterval을 실행할 수 없습니다
- arrays - 자바 스크립트 루프 내부에 타임 아웃/슬립 기능 추가
- javascript setInterval은 consolelogs를 두 배로 만듭니다
- 클래스 기반 뷰에 get_context_data 메서드를 추가하면 django-tables2가 중단됩니다
- arrays - Javascript의 필터 함수 내에서 두 가지 includes 메서드를 사용할 수 있습니까?
- reactjs - axios post 메서드 내부에 상태 설정
- Javascript Jquery 내에서 PHP 변수 호출
- python - 장고 - 필터 메서드 내에서 목록을 쿼리하는 방법
- arrays - if 조건 내에서 null 값을 버리는 가장 좋은 방법은 무엇입니까?자바 스크립트
관련 질문
- javascript : 중첩 Ajax 호출 문제
- javascript : jquery는 div를 제거하고 애니메이션으로 다음 항목을 다시 정렬합니다.
- javascript : jquery로 움직이는 이미지 회전하기
- 내 함수가 완료되면 JavaScript(또는 jQuery)로 사용자 정의 이벤트를 시작합니다.
- javascript : URL에서 페이지로 이미지를 가져오는 방법
- javascript : 여러 위치에서 호출할 수 있도록 아래 jQuery code를 함수에 작성하는 방법은 무엇입니까?
- c# : JavaScript에서 경로 매개변수를 얻는 방법은 무엇입니까?
- javascript : 문서 내부 경고가 준비된 후에만 작동하는 트리거
- javascript : alert() 함수의 소스 code
- javascript : JQuery 및 CSS를 사용한 양식 유효성 검사
let
사용i
선언setTimeout
를 사용하십시오. console.log 카운터를 영원히 10 번만 호출해야하기 때문에 ..