阅读 953

一个函数让你彻底了解闭包和函数柯里化

了解下闭包和函数柯里化的概念

闭包:就是能够读取其他函数内部变量的函数。

维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

零 · 如果需要你写一个判断数据类型的方法你会怎么做?

  • 🤔️ 使用typeof用,那你可能判断不出对象的类型
  • 🤔️ 使用 constructor 看是谁构造的
  • 🤔️ 使用instranceof 判断谁是谁的实例
  • 🤔️ 使用Object.prototype.toString.call

大家都可以自己尝试下,今天我们的重点是使用Object.prototype.toString.call

壹 · 数据类型判断函数

  • 关键词:两个参数valuetype
  • 弊端:每次调用都要传入type的值String

优化一:减少参数的传入

调整传参方式,新增isString这时我们可以观察到

  • 在调用isString时我们只需传递了value值,并且返回接受了余下参数的函数的返回结果
  • isString实现了保存变量的功能(闭包)
  • isTypeOne函数里的getType函数可以被不在自己作用域下的地方执行从而形成闭包


isString在调用时写错了会造成结果判断错误,

优化二:统一处理数据类型函数



关注下面的标签,发现更多相似文章
评论