[英]Access inner function variable outside JavaScript function
我需要在函数外部访问变量,
例:
var testData = "LoadedVariable";
function loadFunction(){
testData = "DynamicVariable";
}
alert(testData);
<div onclick="loadFunction();" style="cursor: pointer;">
turn around click
</div>
按照上面的示例,在页面加载时,我可以访问testData作为“ LoadedVariable”。 但是,当我单击按钮时,testData需要更改为“ DynamicVariable”。
这是针对单个Web应用程序应用程序的动态聊天功能。
当我单击按钮时如何触发警报。 我知道我们可以在函数内部提醒它。 但是我需要以上述示例格式实现结果。
提前致谢。
工作实例
http://jsfiddle.net/yw6pf87s/1/
function loadFunction() {
testData = "DynamicVariable";
return testData;
}
alert(loadFunction());
我的推荐
function loadFunction(newValue){
testData = newValue;
alert(testData);
}
HTML
<div onclick="loadFunction('New Value');" style="cursor: pointer;">turn around click</div>
您的问题不是可变范围界定之一。 实际上,如果您测试示例代码:
var testData = "LoadedVariable";
function loadFunction(){
testData = "DynamicVariable";
}
alert(testData);
您会看到它实际上正常工作:它会警告“ LoadedVariable”。
您的问题实际上是一个时机问题:
<div onclick="loadFunction();" style="cursor: pointer;">
这就是说,“运行更改我的变量的函数”……而不是“运行更改我的变量并警告它的函数”。 您只有一个alert
,这是在页面加载时发生的,因此,当您的div
被单击并且您调用loadFunction
什么都不会发生。 在后台,您的testData
变量已变为“ DynamicVariable”,如果没有alert
,您将无法分辨。
正如其他人所建议的,您可以通过在函数内部移动警报来解决此计时问题。
只需使用单独的函数作为点击处理程序即可。 让点击处理程序调用loadFunction
,然后发出alert
:
<div id="turnaround" style="cursor: pointer;">
turn around click
</div>
<script>
var testData = "LoadedVariable",
loadFunction = function () {
testData = "DynamicVariable";
},
clickHandler = function () {
loadFunction();
alert(testData);
},
turnaround = document.getElementById('turnaround');
turnaround.addEventListener('click', clickHandler, false);
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.