当数组元素的值是函数时,解构赋值主要是将函数赋值给相应的变量:
简单函数的解构赋值
- 如果数组中只有一个函数元素,可以直接将其解构赋值给一个变量。
 在上述示例中,通过const arr = [function() { return 'Hello, World!'; }]; const [func] = arr; console.log(func());const [func] = arr;将数组arr中的函数解构赋值给变量func,然后通过调用func()执行该函数并输出结果。
多个函数的解构赋值
- 当数组中有多个函数元素时,可以使用解构赋值将它们分别赋值给不同的变量。
 ```javascript
 const functionsArray = [
 function add(a, b) { return a + b; },
 function subtract(a, b) { return a - b; },
 function multiply(a, b) { return a * b; }
 ];
const [addFunc, subtractFunc, multiplyFunc] = functionsArray;
console.log(addFunc(5, 3));
console.log(subtractFunc(5, 3));
console.log(multiplyFunc(5, 3));
在这个示例中,使用解构赋值将数组 `functionsArray` 中的三个函数分别赋值给变量 `addFunc`、`subtractFunc` 和 `multiplyFunc`,然后分别调用这些函数并传入相应的参数,输出计算结果。
### 结合对象属性的函数解构赋值
- 有时数组元素可能是包含函数属性的对象,此时可以在解构赋值时同时提取对象的其他属性和函数属性。
```javascript
const objectsArray = [
  {
    name: 'Object 1',
    operation: function(a, b) { return a / b; }
  },
  {
    name: 'Object 2',
    operation: function(a, b) { return a ** b; }
  }
];
for (const { name, operation } of objectsArray) {
  console.log(`${name}: ${operation(8, 2)}`);
}
在上述示例中,通过 for...of 循环结合解构赋值,在每次循环中提取对象的 name 属性和 operation 函数属性,并分别进行打印输出和函数调用,展示了如何处理数组中包含函数属性的对象元素。
函数参数的解构赋值
- 函数的参数也可以使用解构赋值,特别是当参数是数组形式且其中包含函数时。
 ```javascript
 function performOperations([func1, func2], num) {
 console.log(func1(num));
 console.log(func2(num));
 }
function double(num) { return num  2; }
function square(num) { return num * 2; }
performOperations([double, square], 5);`` 在这个示例中,performOperations函数的第一个参数是一个数组,通过解构赋值将数组中的两个函数func1和func2分别赋值给函数内部的变量,然后在函数内部调用这两个函数并传入参数num`,实现了对函数参数的解构赋值和相应的操作。
解构赋值对于数组中函数元素的处理提供了一种简洁明了的方式,能够方便地将函数提取到变量中进行后续的调用和操作,使代码更加清晰和易于理解。
 
                            