在javascript上跨函数传递变量
我试图在函数之间传递变量,在javascript上跨函数传递变量,javascript,Javascript,我试图在函数之间传递变量, 差不多 函数一(){ 变量x=1 } 函数二(){ 变量y=x+1; } 警报(y)您需要通过将变量声明提取到函数外部来提升作用域。也就是说,在函数之外定义x和y。请注意,您仍然可以从函数中更新它们的值。但是,不要忘记,实际上还需要调用这两个函数 这可以从以下几点看出: var x,y; 功能一(){ x=1; } 函数二(){ y=x+1; } 一个(); 二(); 控制台日志(y)您需要通过将变量声明提取到函数外部来提升作用域。也就是说,在函数之外定义x和y。
差不多
函数一(){
变量x=1
}
函数二(){
变量y=x+1;
}
警报(y)代码>您需要通过将变量声明提取到函数外部来提升作用域。也就是说,在函数之外定义x
和y
。请注意,您仍然可以从函数中更新它们的值。但是,不要忘记,实际上还需要调用这两个函数
这可以从以下几点看出:
var x,y;
功能一(){
x=1;
}
函数二(){
y=x+1;
}
一个();
二();
控制台日志(y)代码>您需要通过将变量声明提取到函数外部来提升作用域。也就是说,在函数之外定义x
和y
。请注意,您仍然可以从函数中更新它们的值。但是,不要忘记,实际上还需要调用这两个函数
这可以从以下几点看出:
var x,y;
功能一(){
x=1;
}
函数二(){
y=x+1;
}
一个();
二();
控制台日志(y)代码>如果您确实希望在一个方法中声明变量,请返回它
函数一(){
var x=1;
返回x;
}
函数二(){
var x=1();
变量y=x+1;
返回y;
}
警惕(两个())代码>如果您确实希望在一个方法中声明变量,请返回它
函数一(){
var x=1;
返回x;
}
函数二(){
var x=1();
变量y=x+1;
返回y;
}
警惕(两个())代码>您当前的方式在函数范围内有x和y,这意味着另一个函数不知道它存在。此外,根据函数的作用命名函数也是一种很好的做法。3种简单的方法来实现这一点
全球的
Params
内联
在函数范围之外设置两个变量,任何函数都可以访问李>
var x,y;
函数赋值函数(){
x=1;
}
函数addOne(){
y=x+1;
}
赋值一();
addOne();
控制台日志(y)代码>您当前的方式在函数范围内有x和y,这意味着另一个函数不知道它存在。此外,根据函数的作用命名函数也是一种很好的做法。3种简单的方法来实现这一点
全球的
Params
内联
在函数范围之外设置两个变量,任何函数都可以访问李>
var x,y;
函数赋值函数(){
x=1;
}
函数addOne(){
y=x+1;
}
赋值一();
addOne();
控制台日志(y)代码>似乎希望在两个函数之间共享状态,而不是传递参数。因此,面向对象模式似乎是合适的
类的东西{
构造函数(){
这个.x=1;
}
一(){
归还这个.x;
}
二(){
返回这个.x+1;
}
}
常数t=新事物();
console.log(t.one());
console.log(t.two())代码>似乎希望在两个函数之间共享状态,而不是传递参数。因此,面向对象模式似乎是合适的
类的东西{
构造函数(){
这个.x=1;
}
一(){
归还这个.x;
}
二(){
返回这个.x+1;
}
}
常数t=新事物();
console.log(t.one());
console.log(t.two())代码>如果您想在函数之间共享变量,但不想在全局范围内声明它们,可以使用如下闭包:
(function() {
var x, y;
function one() {
var x = 1
}
function two() {
var y = x + 1;
}
one();
two();
alert(y);
})();
如果您想在函数之间共享变量,但不想在全局范围内声明它们,可以使用如下闭包:
(function() {
var x, y;
function one() {
var x = 1
}
function two() {
var y = x + 1;
}
one();
two();
alert(y);
})();
请告诉我们您打算如何调用这些函数。如果不调用它们,则不会执行任何分配,也不会创建任何值。另外,请解释您为什么希望/需要这样做?让函数接受参数和返回值是更好的设计。请告诉我们您打算如何调用函数。如果不调用它们,则不会执行任何分配,也不会创建任何值。另外,请解释您为什么希望/需要这样做?让函数接受参数和返回值是更好的设计。