从另一个脚本源访问变量

时间:2015-01-08 07:16:00

标签: javascript jquery html5 dom

<script src="http://domain.com/source1.js"></script>
<script src="http://domain.com/source2.js"></script>

source1.js

var PICTURE_PATH = "";
var PICTURE_ROOT = base_url+"YOUTAILOR_files/";
var PROGRAM = parseInt("1");

source2.js

 if(PROGRAM==3 || PROGRAM==4 || PROGRAM==5)
 {
 }

我无法访问source2.js中的程序值..

3 个答案:

答案 0 :(得分:0)

在函数外部声明var source1Var时,实际上是在窗口对象上创建变量。所以你应该只能从source2.js访问它。只需确保source1.js位于脚本标记中的source2.js之前......

但是,如果您在某个函数中声明它,它将对该函数是私有的。如果你真的需要,你可以明确地在窗口上设置它。

在source1.js

function foo() {
   window.source1Var = 3;
}

在source2.js

function bar() {
   console.log(source1Var); // this will search window if it cannot find in the local scope.
}

您尝试解决的问题是什么?通常最好使用某种形式的依赖注入,事件监听器,构建器模式等,而不是使用全局变量。

答案 1 :(得分:0)

做一些像你的第一个.js

var VAR = {
    myvalue: "hai"
 };

然后在第二个调用它

alert(VAR.myvalue);

答案 2 :(得分:0)

这比你想象的要容易。如果变量是全局变量,您应该从任何地方访问它。

// source1.js
var colorCodes = {

  back  : "#fff",
  front : "#888",
  side  : "#369"

};

在另一个档案中:

// source2.js
alert (colorCodes.back); // alerts `#fff`