<body>
在特定的作用域中执行指定的函数,并将参数原封不动的传递
(函数绑定) 函数柯里化(参数复用)
用处:
1、事件执行的时候传递一些额外的参数进去
<input type="text" name="" id="inp">
<div id="box"></div>
<script>
// 函数柯里化
// 闭包
let curry = function(fn){
// 把curry 的参数保存起来
let arg = [].splice.call(arguments, 1)
return function(){
let allArr = [...arg, ...arguments]
fn.apply(null, allArr)
}
}
let fn = function(){
console.log(arguments);
};
let cFn = curry(fn, 1, 2); // 永久保存起来
// 这里可以追加参数
cFn(4, 5); // 这里fn 打印出来1 2 4 5
cFn('a', 'b'); // 这里fn 打印出来1 2 a b
// 参与者模式
let curry2 = function(fn, context){ // context 上下文
let arg = [].splice.call(arguments, 2)
return function(){
let allArg = [...arg, ...arguments]
fn.apply(context, allArg)
}
}
let fn2 = function(){
this.style.height = '200px'
this.style.width = '200px'
this.style.backgroundColor = 'red'
console.log(arguments)
}
let resFn = curry2(fn2, box, 2, 3, 4)
resFn(6, 7, 8)
</script>
</body>
参与者模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 起源 函数式语言的currying特性来自于lambda calculus,lambda calculus只支持单...
- @所有文友 建安联谊会作品集,请跟帖[抱拳] 日 子 文/林峰 日头翻过的黑白 幻化成一幅幅岁月的片段 挂在心畔 ...
- “门当户对”我们老祖宗留下的一个成语,这其实是非常有道理的,只是现在很多屁都不懂地小孩子。以为看了几部爱情电影,几...