Javascript在其他函数中重用变量

时间:2012-08-26 16:45:31

标签: javascript variables global-variables

如何在函数二中重用变量y?我已经阅读过这个主题,但最简单的解决方案是什么?

function one(){
    y = 2 
}

function two(){
    x = y * 2 
}​

4 个答案:

答案 0 :(得分:8)

执行你所要求的最直接的方法是将它们放在另一个函数中,一旦你声明它就会调用它(注意()关闭函数后的},并在新函数的范围内声明变量。两个内部函数都能够查看和修改它们的值。

您还需要声明包含内部函数的变量本身之外的包装函数,因此它们对于想要调用它们的代码是可见的。

var one, two;

(function() {
  var x, y;

  one = function() {
    y = 2;
  };

  two = function() {
    y = y * 2;
  };
}())

one();
two();

另一种常见的方法是使用对象及其属性而不是变量:

var myObject = {
  one: function() {
    this.y = 2;
  },
  two: function() {
    this.x = this.y * 2;
  }
}

myObject.one();
myObject.two();

答案 1 :(得分:0)

声明全局变量以用于其他函数,如

var y=0;
function one()
{
    y=2 

}

function two()
{
    x=y*2 
}​

答案 2 :(得分:0)

据推测,您希望保持每个函数的逻辑封装,并且您希望函数二使用函数one的返回值?这样的事情可能有意义:

function one(){
    var y = 2;
    return y;
}

function two(){
    var y = one();
    var x = y * 2;
}​

如果您想要完成不同的事情,那么您需要添加更多详细信息。

请注意,通过省略var,您隐式声明全局变量,这是禁忌。

答案 3 :(得分:0)

的确,我希望保持每个函数的逻辑封装。

var y=3;
var x=3;

function one(){
    var y = 2;
    return y;

}

function two(){
    var y = one();
    var x = y * 2;
    return x;
}


document.write(one());
document.write(two());​

如果上面的代码解决了我的问题,当函数1有多个变量时它是如何工作的。假设我在函数二中需要50个唯一变量。