面试题之柯里化函数
经典面试题
实现一个add 函数: add(1)(2)(3) = 6
看起来很简单的样子,目测应该是一个函数中返回一个函数,那么手动实现下呢
虽然log最后结果是6,但是其实sum函数并没有返回6,而是每次都返回了自己,那么这里就需要想一想如何让sum最后返回6呢?
这里面需要用到
Function.prototype.toString()
函数每次返回并调用自己的时候会隐式调用toString这个方法
那么修改后是这个样子的
这里需要注意下的就是如果修改原型的toString()方法,就需要使用alert。不过还有一个问题就是这个函数是每次传一个参数,如果是多个参数呢,比如add(1,2,3)(4),这就需要考虑不定参了
实际上这个题就是经典面试中的柯里化函数,这个函数使得函数的使用更加灵活,低耦合....,当然柯里化函数不是简单的用来算和的,在实际工作中遇到了可以详细的再捣鼓捣鼓
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?