了解返回语句
Understanding the return statement.
我已经看了很多例子,但仍然无法弄清楚 return 语句是如何工作的。
function One() {
var newVal = 0;
Too();
console.log(newVal);
}
function Too(newVal) {
++newVal;
return(newVal);
}
这不应该将 1 打印到控制台吗?我真正想做的是让函数 太 每次调用 newVal 时增加 1。但我什至不知道如何让 return 语句工作。我应该提到我不想使用全局变量。感谢您的任何帮助。
这不应该将 1 打印到控制台吗?
不。Too
内部的newVal
不是One
内部的newVal
。它们是完全分开的。
我真正想做的是让函数 太 每次调用 newVal 时增加 1。
它不能,JavaScript 没有任何机制像其他一些语言那样通过引用传递变量(例如 C# 的 ref
和 out
参数(。您可以获得的最接近的是传入对对象的引用并修改对象的状态(这确实非常不同,我不会在这里讨论它,因为它会混淆事情:-((。
这些都与return
声明无关。
执行您所描述的操作的最简单方法是:
function One() {
var newVal = 0;
newVal = Too(newVal);
console.log(newVal);
}
function Too(arg) {
++arg;
return arg;
}
以下是我们调用One
时发生的情况:
- 将创建一个名为
newVal
的局部变量。 - 其值设置为
0
。 - 其值的副本作为参数传递到函数
Too
中。这没有返回到newVal
变量的链接。 - 调用
Too
,在其arg
参数中接受该值(JavaScript 中的参数实际上是局部变量(。 -
Too
以arg
为单位递增该值。 -
Too
返回arg
持有的值的副本作为其返回值。 Too
的返回值分配给变量newVal
。- 我们输出该值(通过将其传递给
console.log
(。
不,不应该。return
语句确定当控件返回到调用环境中时函数调用的值。由于调用环境不使用返回值,因此没有净效应。
以下是获取值的方法:
newVal = Too(newVal);
如果你想创建一个充当计数器的函数,这样每次调用它时都会得到一个新数字,你可以做这样的事情:
var counter = function(initial) {
var c = initial || 0;
return function() {
return c++;
};
}(0);
这样做是使用匿名函数为另一个函数设置持久环境,该函数在(立即(调用时从外部函数返回。然后可以调用返回的函数以从其私有计数器(变量"c"(返回一个新值:
var currentCount = counter();
alert(currentCount); // 0, the first time
currentCount = counter();
alert(currentCount); // 1, and so on
如果函数返回值,则需要在console.log
中调用该函数或捕获返回的值。
function One() {
var newVal = 0;
console.log(Too(newVal));
}
function Too(newVal) {
++newVal;
return(newVal);
}
相关文章:
- jquery if语句返回return wong语句
- 函数在return语句之前返回空对象
- 将语句与jquery相结合,并使用媒体查询来实现返回页首按钮
- 多个if语句根据URL返回css值
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- 如果语句返回错误答案
- 为什么 true == JS中的“true”语句返回false
- .post javascript with PHP 以启用 select 语句返回
- 是否可以仅在 if 语句返回 true 时才调用函数
- 为什么两个相同的语句返回不同的结果,只是用括号括住其中一个而不是另一个
- PHP/javascript中的Switch语句返回'未定义'
- 以下Javascript语句返回什么以及为什么返回
- 为什么我的函数if/else-if/else-if语句返回相同的答案
- if语句返回true,而不是遍历我的所有if语句-javascript
- 这个if语句返回空做什么在Bootstrap模式的源代码
- Import语句返回未定义的模块成员
- If/Else语句返回误报
- 如何从SQLite语句返回所选值
- 为什么我的if-else语句返回错误的结果
- 关于函数中if语句的问题是,如果if语句返回true,而函数返回false