二次封装函数(1)

题目描述

已知函数 fn 执行需要 3 个参数。请实现函数 partial,调用之后满足如下条件:
1、返回一个函数 result,该函数接受一个参数
2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致

 

 1 // call和apply必须显式地调用str3,立即执行,call调用的是具体参数
 2 function partial(fn, str1, str2) {
 3     function result(str3){
 4        return fn.call(this,str1,str2,str3);
 5     }
 6     return result;
 7 }
 8 
 9 //apply调用的是数组
10 function partial(fn, str1, str2) {
11     function result(str3){
12        return fn.apply(this,[str1,str2,str3]);
13     }
14     return result;
15 }
16 
17 //bind不是立即执行,未传入str3时,并未执行,只是返回一个函数,等待参数传入
18 function partial(fn, str1, str2) {
19     function result(str3){
20        return fn.bind(this,str1,str2)(str3);
21     }
22     return result;
23 }
24 
25 // 匿名函数,默认this绑定global,与bind的第一个参数为this时效果一样。
26 function partial(fn, str1, str2) {
27      return function(str3) {
28         return fn(str1, str2, str3);
29     }
30 }

 

来源:牛客网

转载于:https://www.cnblogs.com/daheiylx/p/8899742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值