全局和局部变量JavaScript

时间:2015-01-11 12:27:17

标签: javascript

如何从函数外部获取函数内部的信息

var x = 0;

function myFunction() {  
    x += 1 //When a button is clicked Javascript will add 1 to x, now x will have a value of 1

}

alert(x) //This returns 0, how to make it return 1

P.S仅纯JavaScript P.P.S尽量简单,没有大量代码。谢谢:))

6 个答案:

答案 0 :(得分:2)

你必须先调用myFunction(),例如:

myFunction();
alert(x);

答案 1 :(得分:1)

嗯,你的功能必须为此执行。函数体仅在调用/调用时执行。因此,要么创建IIFE功能,要么稍后调用

myFunction();
alert(x); // now the value has been updated

通过IIFE(立即调用函数表达式),我的意思是

(function(){
  x += 1;
})(); // invoke

答案 2 :(得分:1)

应该在警报之前首先调用myFunctionmyFunction()。这就是你得到0的原因。当加载这个脚本时,x的值为0.因此警报将提醒0.然后每当用户点击你所引用的按钮时,x的值将是增加1.话虽如此,我认为你需要这样的东西:

function myFunction() {
    // when the button will be clicked the value of x
    // would be incremented by one.  
    x += 1 

    // the new value would be alerted.
    alert(x);
}

另一种方式是:

myFunction();
alert(x);

然而,这没有意义,因为每次点击按钮时你需要增加x的值,而你不需要强制执行{{1} }。

答案 3 :(得分:0)

首先整理您的myFunction();,然后您可以按alert(x);

获取值

答案 4 :(得分:0)

在这种情况下,其他答案是正确的 - 只需在myFunction();之前调用alert(x),但为了完整性,另一个“从函数外部获取函数内部”的选项是返回一个值来自功能:

var x = 0;

function myFunction() {  
    return x + 1; // returns 0 + 1 = 1. Note x is still 0
}

var y = myFunction(); // y stores the return value of the function, i.e. 1
alert(y);

答案 5 :(得分:0)

退房:

http://jsfiddle.net/4taojgy7/

(function(){
  var x=10;
    function run(){
    alert(x);
    }
  run();
})();

函数'run'只能访问其范围内的变量。尽管变量'x'在外部定义,但仍然可以访问。您需要更多地研究变量概念的范围。希望澄清一下。