简体   繁体   English

在函数外部定义的javascript变量在函数内是“未定义的”

[英]A javascript variable defined outside a function is 'undefined' within the function

Why is MM_SYSTEM_RESTART_SECONDS undefined in the following snippet? 为什么MM_SYSTEM_RESTART_SECONDS在以下代码段中undefined

If var MM_SYSTEM_RESTART_SECONDS = 40; 如果var MM_SYSTEM_RESTART_SECONDS = 40; is put inside the function, then MM_SYSTEM_RESTART_SECONDS is 40 , but if outside the function, then MM_SYSTEM_RESTART_SECONDS is always undefined . 置于函数内部,然后MM_SYSTEM_RESTART_SECONDS40 ,但如果在函数外部,则MM_SYSTEM_RESTART_SECONDS始终undefined

var MM_SYSTEM_RESTART_SECONDS = 40;


function wait_until_MM_restarts()
{
    restart_timeout_start_seconds = get_cookie( "restart_timeout_start_seconds" )
    elapsed_restart_seconds =  elapsed_seconds( restart_timeout_start_seconds )
    append_debug_message( elapsed_restart_seconds + "/" +   MM_SYSTEM_RESTART_SECONDS )
    if( elapsed_restart_seconds > MM_SYSTEM_RESTART_SECONDS )

This just bit me. 这只是我的意思。 If you call the function before/above the variable declaration the variable might be undefined. 如果在变量声明之前/之上调用函数,则变量可能未定义。

For example 例如

f("before");

var value = 99;
function f(msg)
{    
  alert("msg=" + msg + " value=" + value);
}

f("after");

results in: 结果是:

msg=before value=undefined
msg=after value=99

http://jsfiddle.net/qUhQV/4/ http://jsfiddle.net/qUhQV/4/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM