第一个使用的这两个函数有什么区别class? (javascript)
What are the differences between these two functions one uses first class? (javascript)
有两个函数,一个首先使用 class 并将函数分配给变量,然后 returns 变量,另一个只是一个普通的简单函数。在那里,我不明白为什么一个比另一个更好,因为它们看起来和做的事情对我来说完全一样。有人可以帮助我,让我更容易理解其中的区别吗?
先class
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 return您可以稍后调用的函数:
var orderFunction = createDrinkOrder1(passenger);
// nothing printed to console yet
// later:
orderFunction();
// now printed to console
createDrinkOrder2 立即打印结果:
createDrinkOrder1(passenger);
// printed to console
您有时 return 一个函数不仅可以稍后调用它,还可以创建一个闭包,这可能是一个值得阅读的有趣主题。
先class
function createDrinkOrder(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;
}
Returns 调用解析后可以使用的函数。
var a = createDrinkOrder(some_passenger);
// a now has a function that I can call whenever I want
// If I want to print the result every second I can use
setInterval(a, 1000);
// Or just call it immediately
a();
简单的功能
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.");
}
}
不return任何东西,只要你调用createDrinkOrder2(some_passenger)
就立即打印。这意味着如果你想再次打印到控制台,你必须调用 createDrinkOrder2(some_passenger)
。
第一个实现会将声明的函数提供给调用函数,因此他们可以通过调用变量 'orderFunction' 再次使用它。第二个只会打印一次值,不能重复使用,所以取决于你的用例。
有两个函数,一个首先使用 class 并将函数分配给变量,然后 returns 变量,另一个只是一个普通的简单函数。在那里,我不明白为什么一个比另一个更好,因为它们看起来和做的事情对我来说完全一样。有人可以帮助我,让我更容易理解其中的区别吗?
先class
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 return您可以稍后调用的函数:
var orderFunction = createDrinkOrder1(passenger);
// nothing printed to console yet
// later:
orderFunction();
// now printed to console
createDrinkOrder2 立即打印结果:
createDrinkOrder1(passenger);
// printed to console
您有时 return 一个函数不仅可以稍后调用它,还可以创建一个闭包,这可能是一个值得阅读的有趣主题。
先class
function createDrinkOrder(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;
}
Returns 调用解析后可以使用的函数。
var a = createDrinkOrder(some_passenger);
// a now has a function that I can call whenever I want
// If I want to print the result every second I can use
setInterval(a, 1000);
// Or just call it immediately
a();
简单的功能
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.");
}
}
不return任何东西,只要你调用createDrinkOrder2(some_passenger)
就立即打印。这意味着如果你想再次打印到控制台,你必须调用 createDrinkOrder2(some_passenger)
。
第一个实现会将声明的函数提供给调用函数,因此他们可以通过调用变量 'orderFunction' 再次使用它。第二个只会打印一次值,不能重复使用,所以取决于你的用例。