首页 > 解决方案 > 这些元素在这个 JS 函数中的作用是什么?

问题描述

flatten() 方法的MDN 页面有这段代码

(function flattenDeep(arr1){
   return arr1.reduce((acc, val) =>
    Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
})(arr1);

我想知道的是

  1. 为什么要封装整个函数()
  2. 函数后做什么(arr1)
  3. something ? doThis : orDoThis该算法的名称是什么?

标签: javascript

解决方案


1.为什么整个函数都封装在()中?

因为它是一个自调用函数或一个Immediately-Invoked Function Expression, 或IIFE简称。它在创建后立即执行。自调用表达式被自动调用(启动),而不被调用。

2.函数后面的(arr1)是做什么的?

这是您的self-invoking函数的参数。

3.东西叫什么名字?doThis : orDoThis 算法?

这只是三元运算符


推荐阅读