【发布时间】:2015-02-10 22:44:22
【问题描述】:
我读完了Explaining Javascript Scope and Closures
但我似乎无法让以下代码工作。如您所见,我尝试了很多变体,但无法将当前值传递给稍后将调用的函数。
当单击 div 时,我希望警报读取“开始”而不是“结束”... 帮忙?
var someString = "START";
document.getElementById('elem1').onclick = function(){
return function(someString){
alert(someString);
}();
};
document.getElementById('elem2').onclick = function(){
alert(someString);
};
document.getElementById('elem3').onclick = function(){
alert(new String(someString));
};
document.getElementById('elem4').onclick = function(someString){
return function(someString){
alert(someString);
}();
};
document.getElementById('elem5').onclick = function(someString){
return function(){
alert(someString);
}();
};
document.getElementById('elem6').onclick = function(){
var newSomeString =someString;
alert(newSomeString);
};
var someString = "END";
<body>
<div style="background-color='yellow';display:block;" id="elem1">1</div>
<br>
<div style="background-color='red';display:block;" id="elem2">2</div>
<br>
<div style="background-color='blue';display:block;" id="elem3">3</div>
<br>
<div style="background-color='green';display:block;" id="elem4">4</div>
<br>
<div style="background-color='orange';display:block;" id="elem5">5</div>
<br>
<div style="background-color='pink';display:block;" id="elem6">6</div>
<br>
</body>
【问题讨论】:
标签: javascript onclick scope closures