javascript - 这些元素在这个 JS 函数中的作用是什么?
问题描述
flatten() 方法的MDN 页面有这段代码
(function flattenDeep(arr1){
return arr1.reduce((acc, val) =>
Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
})(arr1);
我想知道的是
- 为什么要封装整个函数
()
? - 函数后做什么
(arr1)
? something ? doThis : orDoThis
该算法的名称是什么?
解决方案
1.为什么整个函数都封装在()中?
因为它是一个自调用函数或一个Immediately-Invoked Function Expression
, 或IIFE
简称。它在创建后立即执行。自调用表达式被自动调用(启动),而不被调用。
2.函数后面的(arr1)是做什么的?
这是您的self-invoking
函数的参数。
3.东西叫什么名字?doThis : orDoThis 算法?
这只是三元运算符。
推荐阅读
- azure - Service/Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware] 未找到指定请求的 CORS 策略
- javascript - Vue-draggable-next:增加空列表的检测范围
- json - 使用 spark/scala 按照 json 文件中首先列出的列的顺序将 json 转换为数据框
- java - 例如,如果您不同意 java.net.URI 实现,如何使用 lambda 和谓词?
- javascript - 修剪与 Cesium 中地形相交的插值多段线
- jquery - Jquery - 所有输入的复杂选择器,其 id 包含一个 focusout 不起作用的值
- ms-access-2016 - 将 Access 查询导出为不带分隔符的文本
- php - 在 SKU WooCommerce 订单后端搜索
- javascript - iOS 设备上的 ckeditor 4 内表中不能放置光标
- algorithm - PetersonNP,机械互斥证明