为了账号安全,请及时绑定邮箱和手机立即绑定

ES6中数据的includes的例子无法理解,定义时无设形参,但调用却能传递参数?

ES6中数据的includes的例子无法理解,定义时无设形参,但调用却能传递参数?

慕勒3428872 2018-10-24 12:52:32
相关代码const contains = (() =>   Array.prototype.includes     ? (arr, value) => arr.includes(value)     : (arr, value) => arr.some(el => el === value) )();contains(['foo', 'bar'], 'baz'); // => false这是我在阮一峰ES6的教程看到的一个例子,无法理解调用该函数时,参数是如何传递的?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

这个代码写得太精炼了,我们来提取一下重点:

const something = Array.prototype.includes
  ? (arr, value) => arr.includes(value)
  : (arr, value) => arr.some(el => el === value)const contains = (() => something)();

contains(['foo', 'bar'], 'baz'); // => false

于是问题来了:

  1. something 的类型是什么?

  2. contains 等号后面是个什么?


答案:

  1. something 的类型是个函数,由那个三元表达式计算得出。

  2. contains 等号后面的是一个立即执行函数表达式 (IIFE),这个表达式的计算结果是 something


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 533 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号