Unable to access variable

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-25 11:25:29

问题


I have two external Javascript files. I declared a variable in one file and I am trying to access the variable from other. When I try to access it, it returns undefined.

<script src="script1.js"></script>
<script src="script2.js"></script>

script1:

$(function(){

    var myvar=35;
});

script2:

$(function(){

    alert(myvar); //this line causing error undefined.

});

回答1:


Your variable isn't global. You've declared it inside a function so it is local to that function. You need to move the var statement outside your document ready function:

var myvar=35;

$(function(){
    // other document ready stuff here, including
    // using or assigning a value to myvar if needed
});

Then it will be globally scoped and can be accessed from other script files (as long as they're included after the one where it's declared).

If you don't know the value to assign until the document ready then do this:

var myvar;       // declare variable

$(function(){
    myvar = 35;  // assign value
});

Since you don't try to use the value until the other script's document ready handler runs this would be fine.




回答2:


Script1.js

  var i=10;

Script2.js

  function call(){
      alert(i);
  }

Sample.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript" charset="utf-8" src="Script1.js" ></script>
<script type="text/javascript" charset="utf-8" src="Script2.js" ></script>
<script>
</script>
<BODY onload='call();'>
</BODY>
</HTML>

Hope this helps you




回答3:


Adding to the answers, your code would work if you dropped the 'var' keyword in the first javascript file . . . .

Dropping 'var' assigns the value to the global variable, and if one doesn't exist, a global variable would be created . . .so, it will be same as a global myvar

  <script src="script1.js"></script>
  <script src="script2.js"></script>

script1:

$(function(){


myvar=35;

});

script2:

$(function(){

alert(myvar); //this will work

});


来源:https://stackoverflow.com/questions/12048863/unable-to-access-variable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!