1

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

<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>

因此,如果必须,我可以添加更多变量

谢谢!

4

4 回答 4

6
<script type="text/javascript">
    window.$vars = {
        width: 300
    };
</script>

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

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

于 2012-06-19T04:30:28.793 回答
0

是的,您可以这样做。

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

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

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

然后像使用它们一样

(function(){
        var k = globalVars.width;
        alert(k);
    });
于 2012-06-19T04:30:14.507 回答
0

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

所以我会这样做:

<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>
于 2012-06-19T04:34:53.257 回答
0

你可以把这样的文件

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

调用函数:

getVariable(300)

或者

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

这是你想要完成的吗?

于 2012-06-19T04:35:20.497 回答