如何在函数二中重用变量y?我已经阅读过这个主题,但最简单的解决方案是什么?
function one(){
y = 2
}
function two(){
x = y * 2
}
答案 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个唯一变量。