• 二次封装函数(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 }

    来源:牛客网

  • 相关阅读:
    初始FreeMake
    C#三层架构
    文件上传
    Jquery动画效果(混合)
    反射机制
    Java使用Sockt进行通信(2)
    Java使用Socket进行通信
    JavaScript基础
    Java的继承
    事物>视图>索引>备份和恢复
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8899742.html
Copyright © 2020-2023  润新知