gpt4 book ai didi

javascript - 匿名函数在 Javascript 中不起作用? (或者也许我只是没有得到匿名函数)

转载 作者:行者123 更新时间:2023-11-29 16:11:09 25 4
gpt4 key购买 nike

我是 JavaScript(和编码)的新手,正在学习 深入浅出 JavaScript 这本书。通过阅读,我认为匿名函数可以作为参数,因为函数是值,但我认为我可能错了。

下面的代码,按照我的想法,应该输出7。相反,它输出 function () { return (m * n); }1 我对字符串做了类似的事情,但根据我的推测,它们也没有按预期处理。

请告诉我我对匿名函数的理解哪里出了问题,在 javascript 中使用匿名函数的限制,以及为什么我们要使用匿名函数。非常感谢。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>

<p id="demo"></p>

<script>

function addIt(x, y) {
return (x + y);
}

var m = 2;
var n = 3;

var total = addIt(function() { return (m * n); }, 1);

document.getElementById("demo").innerHTML = total;

</script>

</body>
</html>

最佳答案

您没有调用 addIt() 中的函数。要调用一个函数,你必须在它后面加上 ()。所以应该是:

function addIt(x, y) {
return (x() + y);
}

如果你想同时允许数字和函数作为参数,你可以使用 if 来测试。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>

<p id="demo"></p>

<script>

function addIt(x, y) {
if (typeof x == 'function') {
x = x();
}
if (typeof y == 'function') {
y = y();
}
return (x + y);
}

var m = 2;
var n = 3;

var total = addIt(function() { return (m * n); }, 1);

document.getElementById("demo").innerHTML = total;

</script>

</body>
</html>

关于javascript - 匿名函数在 Javascript 中不起作用? (或者也许我只是没有得到匿名函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com