Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 888 Bytes

use-bind-to-curry-functions.md

File metadata and controls

27 lines (21 loc) · 888 Bytes

使用bind方法实现函数的柯里化

function sayHello(name, words) {
    console.log('Hello, ' + name + words);
}

// 将函数与其参数的一个子集绑定的技术称为函数的柯里化
function sayHelloToDr(words) {
    //sayHello('dreamapple', words);
    // 使用bind
    sayHello.bind(null, 'dreamapple', words)();
}

sayHello('dreamapple', ' happy'); // Hello, dreamapple happy
sayHello('dreamapple1', ' happy1'); // Hello, dreamapple1 happy1

sayHelloToDr(' a nice day'); // Hello, dreamapple a nice day
sayHelloToDr(' nice to meet you'); // Hello, dreamapple nice to meet you

源码


谨记

  • 使用bind方法实现函数的柯里化,即创建一个固定需求参数子集的委托函数。
  • 传入null或者undefined作为接收者的参数来实现函数的柯里化,从而忽略其接收者。