有两个函数,一个使用第一类并将函数分配给变量然后返回该变量,另一个只是一个常规的简单函数。在那里,我不明白为什么一个比另一个更好,因为它们看起来和做的事情对我来说都是完全相同的。有人可以帮助我让我更容易理解其中的区别吗?
头等舱
function createDrinkOrder1(passenger) {
var orderFunction;
if (passenger.ticket === "firstclass") {
orderFunction = function() {
console.log("Would you like a cocktail or wine?");
};
} else {
orderFunction = function() {
console.log("Your choice is cola or water.");
};
}
return orderFunction;
}
简单的功能
function createDrinkOrder2(passenger){
if(passenger.ticket === "firstclass"){
console.log("Would you like a cocktail or wine?");
}else{
console.log("Your choice is cola or water.");
}
}
最佳答案
createDrinkOrder1 返回一个您可以稍后调用的函数:
var orderFunction = createDrinkOrder1(passenger);
// nothing printed to console yet
// later:
orderFunction();
// now printed to console
createDrinkOrder2 立即打印结果:
createDrinkOrder1(passenger);
// printed to console
有时,您返回一个函数不仅是为了以后能够调用它,而且还可以创建一个闭包,这可能是一个值得阅读的有趣主题。
关于javascript - 第一类使用的这两个函数有什么区别? (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074183/