Javascript 生活功能
Javascript iife functions
我正在学习 JavaScript 的初学者课程,并且遇到了这段代码。但我不明白为什么 sum 需要成为 IIFE 函数。你能帮我理解这段代码是如何工作的吗?
const sum = function() {
return function sum(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
}();
console.log(sum(1, 2, 3))
在这种情况下,变量 args 接受参数
const sum = function() {
return function sum(x,y,z) {
const args = [1,2,3];
return args.reduce((a,b) => a+b, 0);};
}();
console.log(sum(1,2,3))
reduce() 方法为数组的每个值执行一个reducer 函数。
在这种情况下,您将获取数组的前两个元素,找到这两个元素的总和,然后 reduce 方法一个一个地处理其他元素。
其他示例可以更好地向您解释
const numbers = [175, 50, 25];
function myFunc(total, num) {
return total - num;
} // returns 100 (175 - 50 - 25)
在那个函数里看起来只是为了告诉你如何使用IIFE(函数末尾的括号),括号是自动执行函数,如果你想执行一个函数,使用加载时,您可以在子句“function”的末尾添加“()”或在其开头添加“+”,如“+function”以查看更多详细信息,请检查以下 link:
目前没有理由认为该函数在另一个已执行的函数中。
这些是等价的,只是函数会立即返回一个。如果非要我猜的话,下一条指令可能会讨论作用域或 currying?,谁知道呢。
const sum = function() {
return function sum(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
}();
console.log(sum(1, 2, 3))
const sum = function(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
console.log(sum(1, 2, 3))
我正在学习 JavaScript 的初学者课程,并且遇到了这段代码。但我不明白为什么 sum 需要成为 IIFE 函数。你能帮我理解这段代码是如何工作的吗?
const sum = function() {
return function sum(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
}();
console.log(sum(1, 2, 3))
在这种情况下,变量 args 接受参数
const sum = function() {
return function sum(x,y,z) {
const args = [1,2,3];
return args.reduce((a,b) => a+b, 0);};
}();
console.log(sum(1,2,3))
reduce() 方法为数组的每个值执行一个reducer 函数。 在这种情况下,您将获取数组的前两个元素,找到这两个元素的总和,然后 reduce 方法一个一个地处理其他元素。
其他示例可以更好地向您解释
const numbers = [175, 50, 25];
function myFunc(total, num) {
return total - num;
} // returns 100 (175 - 50 - 25)
在那个函数里看起来只是为了告诉你如何使用IIFE(函数末尾的括号),括号是自动执行函数,如果你想执行一个函数,使用加载时,您可以在子句“function”的末尾添加“()”或在其开头添加“+”,如“+function”以查看更多详细信息,请检查以下 link:
目前没有理由认为该函数在另一个已执行的函数中。
这些是等价的,只是函数会立即返回一个。如果非要我猜的话,下一条指令可能会讨论作用域或 currying?,谁知道呢。
const sum = function() {
return function sum(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
}();
console.log(sum(1, 2, 3))
const sum = function(x, y, z) {
const args = [x, y, z];
return args.reduce((a, b) => a + b, 0);
};
console.log(sum(1, 2, 3))