2014-12-01 3 views
-1

변수를 덮어 쓰지 않도록하려면 어떻게해야합니까? 다음은 그 예입니다. 그것은 대신에 두 번 '초'의 경고합니다 내가 너무 아래로, 시도JavaScript - 변수를 다시 할당하면 해당 값이 변경됩니다.

var firstVar = 'first'; 

window.addEventListener('load',function(){ 
    alert(firstVar); 
}); 

var firstVar = 'second'; 

window.addEventListener('load',function(){ 
    alert(firstVar); 
}); 

'첫 번째'다음 '초'.

var firstVar = 'first'; 

window.addEventListener('load',function(){ 
    var temp = firstVar; 
    alert(temp); 
}); 

var firstVar = 'second'; 

window.addEventListener('load',function(){ 
    var temp = firstVar; 
    alert(temp); 
}); 

이벤트가 bind (this)를 사용하려고했지만 이벤트가 작동하지 않습니다. 이 방법이 효과가 있습니까 아니면 효과가없는 방법일까요?

감사 페이지로드는 당신이 그렇게 당신이 경고에 first을 볼 수 없습니다에 새 값을 할당처럼 사용할 수 .IT가 될 것입니다 최근 한 후, 그래서 당신은 두 번 같은 변수를 선언 한 이후

답변

1

.

당신은 같은 것을 할 필요가 :

var firstVar1 = 'first'; 

window.addEventListener('load',function(){ 
    alert(firstVar1); 
}); 

var firstVar = 'second'; 

window.addEventListener('load',function(){ 
    alert(firstVar); 
}); 

이상 단일로드 이벤트에 모두 문을 추가합니다. 이 같은 :

window.addEventListener('load',function(){ 
    var firstVar = 'first'; 
    alert(firstVar); 
    var firstVar = 'second'; 
    alert(firstVar); 

}); 

또는이 수행 할 수 있습니다

var firstVar = 'first'; 

window.addEventListener('load',function(){ 
    alert(firstVar); 
mymethod(); 

}); 

function mymethod(){ 

    var firstVar = 'second'; 
    alert(firstVar); 
} 

또는 구현과 유사한

var firstVar = 'first'; 
localStorage.setItem("data1",firstVar); 
window.addEventListener('load',function(){ 
    var first = localStorage.getItem("data1"); 
    alert(first); 

}); 

var firstVar = 'second'; 
localStorage.setItem("data2",firstVar); 
window.addEventListener('load',function(){ 
    var first = localStorage.getItem("data2"); 
    alert(first); 

}); 
+1

예는 firstVar을 요청 부하에 대한 이벤트 리스너를 사용 할 방법이다. 문서는 한 번만로드 할 수 있기 때문에 동일한 결과를 얻을 수 있습니다. – Rafael

+0

@NinjoeQuah 윈도우로드 이벤트에서이 작업을 수행 할 수 없으므로 페이지에 다른 이벤트를 더 잘 작성하고 구현하십시오. –

+0

나는 당신이 나에게 말하려고하는 것을 이해하지만, 변수가 어떻게 선언되는지를 바꿀 수 없다. 그래서 그것을 작동시키는 방법을 찾고있었습니다. 감사합니다 –

0

당신이 요구하는 부하에 대한 이벤트 리스너를 사용을 firstVar입니다.

문서는 한 번만을로드 할 수 있으므로 동일한 결과가 나타납니다.

이것은 당신이

window.addEventListener('load',function(){ 
    var firstVar = 'First'; 
    alert(firstVar); 

    var firstVar = 'Second'; 
    alert(firstVar); 
}); 
+0

나는 당신이 말하고자하는 것을 이해하지만 그렇게해야만합니다. 그래서 나는 그 일을 할 수있는 방법을 찾고있었습니다. 어쨌든 도움을 주셔서 감사합니다 –

+0

@ NinjoeQuah 그렇게하는 것은 불가능합니다. – Rafael

관련 문제