zoukankan      html  css  js  c++  java
  • 二次封装函数(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 }

    来源:牛客网

  • 相关阅读:
    Python 爬虫简介
    Python 线程池(小节)
    Python platform 模块
    Python term 模块
    python 统计使用技巧
    ArcGIS中的WKID(转)
    c#二维码资料
    How to remove live visual tree?
    新书预告 ArcGIS跨平台开发系列第一本
    visual studio 中删除多余的空白行
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8899742.html
Copyright © 2011-2022 走看看