일부 자바 프로젝트를 작성 중이며 변수 업데이트에 몇 가지 문제가 있습니다. 나는 그런 기능을 가지고 :자바 스크립트 함수에서 변수가 업데이트되지 않습니다.
function Bullet(top){
this.top = top;
update();
function update(){
this.top -= 5;
console.log(this.top)
setTimeout(update, 50);
}
};
Bullet.prototype.getTop = function(){
return this.top;
};
내가 전화 할 때 : 나는 반복적으로, 나는 또한 얻을 결과 bullet.getTop()
호출 할 때
var bullet = new Bullet(300);
나는 물론 (300)의 연속 콘솔 출력을 얻을 300
자, 내 질문은 다음과 같습니다. 왜 이런 일이 발생합니까? 어떻게 수정해야합니까?
'this' 당신이 생각하는 것이 아니다, http://stackoverflow.com/questions/337878/var-self-this를 참조 – elclanrs
내부는'update','this' 창입니다 있기 때문에 문맥은 주어지지 않았다. 'this.update = function() {...};을 사용하는 것이 더 좋습니다. this.update();'또는'update.call (this);'. –
"300 연속 콘솔 출력"어떻게 되나요? 'window.top'는 객체입니다. 당신은'window' (또는'[object window]')에 속성 목록을 얻어야합니다. – Teemu