Array.prototype.slice.call()
来源:互联网 发布:怎么建立子域名 编辑:程序博客网 时间:2024/05/15 23:43
Array.prototype.slice.call()
下面要接触‘函数柯里化’这个概念,感觉跟题目不符,不会的。题目上的会在柯里化中接触到,至于为什么题目不叫‘函数柯里化’,是考虑到我对这个感念都不是很熟悉。网上找了很多,发现大同小异,没有通俗易懂了话语,我的要求就是‘小白都要能看懂才行’。
- 概念:把接受多个参数的函数变换成接收一个单一参数的函数,并且返回接受余下的参数且返回结果的新函数的技术(百度找的)。//相当于使用一个闭包返回一个函数,这个函数就需要你传原参数中剩余的参数。哎!我都绕糊涂了,那位大侠解释解释呗。
- 涉及的知识点:
1.闭包、slice(),call()~~~~
Eaxmple:
function curry(fn){ var args = Array.prototype.slice.call(arguments,1); /**为什么要用Array.prototype.slice?**/ //是因为我们传的参数不是数组,所有只有用数组原型中的方法 //Array.prototype.slice = function(arg,arg1,……){} //~~.call用call是把arguments绑定在slice这个方法上,(不知道这样说对不对?) //Array.prototype.slice.call(obj,start,end)--start:方法中slice截取的开始位置,end终止位置; return function(){ var innerArgs = Array.prototype.slice.call(arguments); var finalArgs = args.concat(innerArgs); return fn.apply(null, finalArgs); //null是没有指定环境; }; } function add(num1, num2){ return num1 + num2; } var curriedAdd = curry(add, 5); alert(curriedAdd(3));
代码的其余部分我就不解释了,应该很好看懂,至于怎么深入了解大家可以去试试,数组的prototype的方法,字符串的prototype的方法。自己试吧!
以上只是本人暂时的理解,不足之处请指出。
0 0
- Array.prototype.slice.call()
- Array.prototype.slice.call
- Array.prototype.slice.call
- Array.prototype.slice.call
- Array.prototype.slice.call
- Array.prototype.slice.call
- Array.prototype.slice.call
- 什么是Array.prototype.slice.call
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- Array.prototype.slice.call(arguments)
- NumberFormat
- jQuery 2.0.3 源码分析 事件绑定 - bind/live/delegate/on
- 【转】数据库连接池
- Linux下的socket编程实践(四)TCP的粘包问题和常用解决方案
- RS232,RS485波形分析
- Array.prototype.slice.call()
- 不错的学习网站
- leetcode30
- 使用spark与ElasticSearch交互
- 奇偶数分离(还有些细节问题)
- 异常控制流--进程的基石
- Swift--编译生成SIL(Swift Intermediate Language)
- linux 常用性能监控工具备忘
- flume 采集数据到hdfs