|
成都前端培训课程中javascript回调函数的使用
很多学员在尝试理解回调函数时遇到了问题。不太清楚它们是如何工作的以及如何在Javascript代码中使用它们。在这里,成都达内web前端讲师将尝试尽可能简单地解释它们。
Javascript函数
在Javascript中,函数是对象,如字符串,数组等。因此,如果它是一个对象,这意味着您可以像所有对象一样传递到任何您想要的位置。例如:
var calculateArea = function (a, b) {
var area = a * b;
console.log("Calculated area of "+ a + " and " + b + " is equal to: " + area);
return area;
}
function rectangleCalculation(a, b, calculateFunction){
calculateFunction(a, b);
}
rectangleCalculation(5, 4, calculateArea);
在这个简短的例子中,我们看到“calculateArea”函数作为参数之一传递给“rectangleCalculation”函数,并在其中调用。如果你有一些具有一些常用功能的抽象函数并且需要提取一些特定功能,那将非常方便。例如:
var calculateArea = function (a, b) {
var area = a * b;
console.log("Calculated area is equal to: " + area);
return area;
}
var calculatePerimeter = function (a, b) {
var perimeter = 2 * (a + b);
console.log("Calculated perimeter is equal to: " + perimeter);
return perimeter;
}
function rectangleCalculation(a, b, calculateFunction){
console.log("Input parameters: a = " + a + "; b = " + b + ";");
calculateFunction(a, b);
}
rectangleCalculation(5, 4, calculateArea);
rectangleCalculation(5, 4, calculatePerimeter);
此时,我将参数记录移出到“rectangleCalculation”函数,因为矩形不能有两个以上的变量a和b。我还为周边计算添加了另一个功能。从这里你可以看到我不需要改变任何东西,我可以将任何我想要的东西传递给“rectangleCalculation”函数。
Javascript回调函数
回调函数是一个传递给另一个函数的函数,它是什么时候调用传递的函数。这在执行长I / O操作时非常方便,因为它允许异步行为。回调函数在大多数Javascript框架中广泛使用。一开始,特别是那些使用Java或类似语言编程的人,这有点奇怪,因为从代码序列中你无法确定它是否会逐行执行。例如:
var callDelayFunction = function(callbackFunction) {
setTimeout(function() {
callbackFunction();
}, 3000);
};
console.log("Starting");
callDelayFunction(function() {
console.log("Callback function");
});
console.log("Ending");
从第一次查看代码开始,看起来应该调用“Starting”,“Callback function”和“Ending”,但实际上是“Starting”,“Ending”,并且在3秒之后,“Callback function”是调用。因此,在编写代码时,您需要记住,特别是当它涉及与数据库或文件I / O的通信时,下一个将要执行的代码必须在没有数据的情况下工作,因为它通常不会被呈现。
结论
回调函数非常有用,因为它们允许您在不阻止代码执行的情况下执行耗时的操作。当然,它有一些缺点,如果你使用过Java或类似的语言,你需要稍微改变一下你的想法。但这是一件好事,因为走出你的舒适区总能带来很多好处。
知识是需要不断的累积,前端开发会变成一个必不可少的优势,IT行业的不断发展,你还在考虑什么呢?选择成都web培训班web前端开发课程,不再孤军奋战,早日完成自己的做IT高薪白领得梦想。成都达内给你一条和别人不一样的路! |
|