了解下闭包和函数柯里化的概念
闭包:就是能够读取其他函数内部变量的函数。
维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
零 · 如果需要你写一个判断数据类型的方法你会怎么做?
- 🤔️ 使用
typeof用,那你可能判断不出对象的类型
- 🤔️ 使用
constructor看是谁构造的
- 🤔️ 使用
instranceof判断谁是谁的实例
- 🤔️ 使用
Object.prototype.toString.call
大家都可以自己尝试下,今天我们的重点是使用Object.prototype.toString.call
壹 · 数据类型判断函数
- 关键词:两个参数
value和type - 弊端:每次调用都要传入type的值String
优化一:减少参数的传入
调整传参方式,新增isString这时我们可以观察到
- 在调用
isString时我们只需传递了value值,并且返回接受了余下参数的函数的返回结果 isString实现了保存变量的功能(闭包)- 在
isTypeOne函数里的getType函数可以被不在自己作用域下的地方执行从而形成闭包
isString在调用时写错了会造成结果判断错误,