gpt4 book ai didi

javascript - 在这里使用回调函数(JavaScript)有什么好处吗?

转载 作者:行者123 更新时间:2023-12-03 07:03:11 25 4
gpt4 key购买 nike

出于某种原因,我无法理解 JS 中的回调函数。我认为它最终点击了如何使用它们(有点),但我仍然不明白为什么我需要这样做。这两段代码有何不同?为什么使用回调版本会更好?他们都做同样的事情。它们都消除了对重复代码的需要。它们的文件大小大致相同。对我来说,为什么我要在第一个示例上使用回调示例并不明显 - 至少如果目标是防止重复代码(这就是我读到的使用这样的回调的原因)。

版本 1

    // no need to pass a function -- not a callback
function addNumsAndMultiply(num1, num2) {
findSum(num1, num2);
var product = num1 * num2;
alert("The product of " + num1 + " and " + num2 + " is: " + product);
}

function addNumsAndDivide(num1, num2) {
findSum(num1, num2);
var quotient = num1 / num2;
alert("The quotient of " + num1 + "/" + num2 + " is: " + quotient);
}

function findSum(num1, num2) {
var sum = num1 + num2;
alert("The sum of " + num1 + " and " + num2 + " is: " + sum);
}

addNumsAndMultiply(3,4);
addNumsAndDivide(30,5);

版本 2

    // passed the function -- this is a callback
function addNumsAndWhat(num1, num2, callback) {
var sum = num1 + num2;
alert("The sum of " + num1 + " and " + num2 + " is: " + sum);
callback(num1,num2);
}

function multiply(num1, num2) {
var product = num1 * num2;
alert("The product of " + num1 + " and " + num2 + " is: " + product);
}

function divide(num1, num2) {
var quotient = num1 / num2;
alert("The quotient of " + num1 + "/" + num2 + " is: " + quotient);
}

addNumsAndWhat(3,4,multiply);
addNumsAndWhat(30,5,divide);

最佳答案

您执行的回调是正确的,但在您使用它们的地方并没有真正意义。

Javascript 回调中最划算的地方是异步操作——例如进行网络调用。这是一些示例代码:

http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

这非常简单 - 您开始调用并为其提供一个函数以在调用完成时调用。无需轮询或执行任何其他同步操作,您只需等待完成、失败等时收到通知即可。

关于javascript - 在这里使用回调函数(JavaScript)有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946069/

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