浅聊偏函数

2022-09-19 10:46:33 浏览数 (1)


theme: juejin

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情


什么是偏函数?

首先我们知道,这是一个函数:

代码语言:javascript复制
function ajax(url, data, callback) {
  // ..
}

这是另外一个函数:

代码语言:javascript复制
function ajaxTest1(data, callback) {
  ajax('http://www.test.com/test1', data, callback);
}

ajaxTest1 函数相比 ajax 函数,少传了一个参数,它的 url 被固定到了 ajaxTest1 的函数体内;

同理,我们还可以写出 ajaxTest2、ajaxTest3、……、ajaxTestN

如果我们直接写:

代码语言:javascript复制
function ajaxTest2(data, callback) {
  ajax('http://www.test.com/test2', data, callback);
}

function ajaxTest3(data, callback) {
  ajax('http://www.test.com/test3', data, callback);
}

......

function ajaxTestN(data, callback) {
  ajax('http://www.test.com/testN', data, callback);
}

这样有问题吗?

从“能用就行”的角度看,是可以的;如果是从“设计模式”的角度看,就不太 ok 了!

因为这样写,都没有复用到 ajax 函数呀

0 人点赞