【问题标题】:javascript/jquery passing variablesjavascript/jquery 传递变量
【发布时间】:2012-06-19 04:26:16
【问题描述】:

我想知道是否有一种方法可以像这样传递变量:

<script type="text/javascript">
width = 300;
</script>

<script type="text/javascript">
(function(){
    var k = width;
    alert(k);
});
</script>

我正在尝试学习如何将宽度传递给变量 k。我不想做var width =300有没有办法做这样的事情?所以最终我可以将底部脚本 (function(){...}); 放入我可以执行此操作的文件中

<script type="text/javascript">
width = 300;

//more variables if needed

//height = 300;
//name = "example";
//...
</script>

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

所以如果需要的话我可以添加更多变量

谢谢!

【问题讨论】:

  • 你可以在 cookie 的帮助下做到这一点
  • 您的解决方案有什么问题?唯一的区别是我只会定义一个包含所有必需变量的对象。不,cookie 是不必要的。
  • 这应该确实有效,因为变量是在包含其他脚本之前声明的,它应该是可用的
  • 同意@JonathanOng。看起来您正在尝试创建一个配置文件。我会将这些配置设置放在对象上。然后,我将使用选择对象值定义变量。
  • 您拥有的代码按原样工作 - 或者除了底部脚本中的代码永远不会被执行之外。您需要在分号前添加尾随 () 来调用您的函数。

标签: javascript jquery variables parameter-passing


【解决方案1】:
<script type="text/javascript">
    window.$vars = {
        width: 300
    };
</script>

<script type="text/javascript">
    (function(){
        var k = window.$vars.width;
        alert(k);
    })();
</script>

将变量放在全局范围内即可。

【讨论】:

    【解决方案2】:

    是的,您可以这样做。

    如果您在任何 function or closure 之外声明一个变量,该变量将是一个全局变量(窗口对象的属性),并且您可以在该声明之后的任何地方(甚至在外部 js 文件中)使用该变量。

    但最好将所有全局变量放在一个对象中,这样它就不会像这样污染全局命名空间

    globalVars = {
       width: 300,
       height: 200
    };
    

    然后像这样使用它们

    (function(){
            var k = globalVars.width;
            alert(k);
        });
    

    【讨论】:

      【解决方案3】:

      您似乎正在尝试创建一个大型配置设置文件。我会创建一个对象并引用它的属性进行局部变量赋值...

      所以我会这样做:

      <script type="text/javascript">
          var myLargeObject = {
                width:300,
                name:"give it a name",
                height:500,
                etc..
          }
      </script>
      
      //then reference your values like this...
      <script type="text/javascript">
          (function(){
              var k = myLargeObject.width;
              alert(k);
          });
      </script>
      

      【讨论】:

        【解决方案4】:

        你可以把这样的文件放进去

        function getVariable(width)
        {
          var newWidth = width;
          alert(newWidth);
          //do something else
          return newWidth
        }
        

        调用函数:

        getVariable(300)
        

        <a href='javascript:getVariable(300);'>something</a>
        

        这是你想要完成的吗?

        【讨论】:

          猜你喜欢
          • 2011-07-23
          • 1970-01-01
          • 1970-01-01
          • 2014-10-31
          • 1970-01-01
          • 2012-07-02
          • 2011-08-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多