【问题标题】:Call variables from one javascript file to another从一个javascript文件调用变量到另一个
【发布时间】:2011-12-02 03:01:04
【问题描述】:

如何从另一个 javascript 文件中调用我存储在一个 javascript 文件中的变量?

var.js

var VAR = new Object;
VAR.myvalue = "Yeah!";

那我想在这里使用 VAR.myvalue

示例.js

alert(VAR.myvalue);

【问题讨论】:

  • 您是否在 sample.js 之前包含了 var.js?也许把alert 放在它肯定会被调用的地方?
  • 是的,我做到了。小部件上的新对象似乎有问题,因为我已经在一个简单的 html 上尝试了这个示例并且它可以工作。

标签: javascript variables


【解决方案1】:

首先,而不是

var VAR = new Object;
VAR.myvalue = "Yeah!";

选择

var VAR = {
    myvalue: "Yeah!"
 };

但只要var.js首先 sample.js 引用,你所拥有的应该可以正常工作。

var.js 将声明并初始化 VAR,它将从 sample.js 中声明的脚本中读取

【讨论】:

  • 我刚刚创建了一个示例,是的,谢谢。但在我的情况下,因为我将它应用到一个小部件上,但它没有。也许我的代码有问题。 :) 但是,谢谢。
【解决方案2】:

将两个 JavaScript 文件包含在一个 HTML 文件中,将 sample.js 放在 var.js 之后,以便 VAR.myvalue 有效:

<script type="text/javascript" src="var.js"></script>
<script type="text/javascript" src="sample.js"></script>

【讨论】:

    【解决方案3】:

    尝试使用module pattern 分隔您的范围。这将消除未来的头痛。

    var.js

    var someVar = (function () {
      var total = 10; // Local scope, protected from global namespace
    
      return {
        add: function(num){
          total += num;
        }
      , sub: function(num){
          total -= num;
        }
      , total: function(){
          return total;
        }
      };
    }());
    

    然后,您可以在其他任何地方使用该对象的方法和属性。

    sample.js

    someVar.add(5);
    someVar.sub(6);
    alert(someVar.total());
    

    【讨论】:

    • 嘿,这是我的小部件上的一个作品。你能让这更简单吗,因为我只想将我的值存储到其他 javascript 并调用它。正是我上面所说的。感谢您的提前:)
    • 大声笑,重点是“向您学习”有关 Javascript OOP 的知识。上面的 Adam Rackis 回答是相同的,没有方法,只有对象属性,但基本上以相同的方式工作。
    • @Pastor Bones - 你实际上并没有回答这个问题:你没有提到的关键点是“var.js”必须包含在之前“样本.js”。 (另外,我同意模块模式很有用,但前提是您确实需要方法。如果您只需要一些数据属性,那么简单的对象文字就是要走的路。)
    • @Pastor,是的,但我上面所说的它不适用于我的小部件。我只是想问一下是否有更好的方法可以节省更多空间。因为我要存储很多值。
    • return 语句可以返回函数或属性,访问方式相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    相关资源
    最近更新 更多