为什么用window对象定义的变量给出了未定义的值?

时间:2017-09-26 12:40:17

标签: javascript

我已经读过,当我们在一个函数中声明一个带有 window 对象的变量时,它变成一个全局变量,即我们可以在函数外部访问该变量。

但是我在访问该全局变量时遇到了问题,并且它将 undefined 作为输出。

以下是代码段:

window.js

function m(){  
    window.value=100;//declaring global variable by window object  
}  

function n(){  
    document.write("Global var value: "+ window.value);//accessing global variable from other function  
}

window.html

<html>
    <head>
        <script type="text/javascript" src="window.js"> </script> 
    </head>
    <body>
        <p> This is global variable test. </p>
        <form>
            <input type="button" onclick="n()" value="Click!!"/>
        </form>
    </body>
</html>

输出

全局变量值:未定义

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

  

我已经读过,当我们在函数内声明一个带有window对象的变量时,它就变成了一个全局变量......

它不是声明,它是一项任务。这很重要,因为直到/除非您已编写的代码的逐步执行到达该行(而声明是在逐步执行的阶段处理的,否则它不会发生)在范围内))。

您的代码中的问题是您的m函数永远不会被调用,因此其中的代码永远不会运行,因此不会创建全局代码。

全球可能无法解决您无论如何要解决的任何问题,因为它的价值。 : - )

答案 1 :(得分:0)

您应首先执行m()功能,如下所示设置variable

(function m(){  
    window.value=100;//declaring global variable by window object  
})();

答案 2 :(得分:0)

使用.js文件,如下所示:

    function m(){  
window.value=100;//declaring global variable by window object  
}  
function n(){  
m();
document.write("Global var value: "+ window.value);//accessing global variable from other function  
}