访问JavaScript函数外部的内部函数变量

时间:2015-01-16 05:37:10

标签: javascript

我需要访问函数外的变量

示例:

var testData = "LoadedVariable";
    function loadFunction(){
        testData = "DynamicVariable";
    }
    alert(testData);

<div onclick="loadFunction();" style="cursor: pointer;">
turn around click
</div>

如上例所示,在页面加载时,我可以将testData作为“LoadedVariable”访问。但是,当我点击按钮时,testData需要更改为“DynamicVariable”。

这适用于单个Web应用程序应用程序的动态聊天功能。

单击按钮时如何触发警报。我知道我们可以在函数内部提醒它。但我需要在上面的示例格式中实现结果。

提前致谢。

我在JSFIDDLE

中添加了相同内容

3 个答案:

答案 0 :(得分:0)

工作示例

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>

答案 1 :(得分:0)

您的问题不是变量范围。实际上,如果您测试示例代码:

var testData = "LoadedVariable";
function loadFunction(){
    testData = "DynamicVariable";
}
alert(testData);

你会发现它确实可以正常工作:它提醒&#34; LoadedVariable&#34;。

你的问题实际上是时间问题:

<div onclick="loadFunction();" style="cursor: pointer;">

这就是说,&#34;运行一个改变我的变量的函数&#34; ...但不是&#34;运行一个更改我的变量的功能并提醒它&#34;。您只有一个alert,这会在页面加载时发生,因此当您点击div并致电loadFunction时,就不会发生任何事情。在幕后您的testData变量变为&#34; DynamicVariable&#34;,您只能在没有alert的情况下告诉。

正如其他人所建议的那样,您可以通过在功能中移动警报来解决此时间问题。

答案 2 :(得分:0)

只需使用单独的函数作为单击处理程序。让点击处理程序调用{​​{1}},然后调用loadFunction

alert

jsFiddle