返回博主主页

ES6——Thunk函数

1.

JavaScript 语言的 Thunk 函数
JavaScript 语言是传值调用,它的 Thunk 函数含义有所不同。在 JavaScript 语言中,Thunk 函数替换的不是表达式,而是
多参数函数,将其替换成一个只接受回调函数作为参数的单参数函数。
// ES6版本
var Thunk = function(fn) {
return function (...args) {
return function (callback) {
return fn.call(this, ...args, callback);
}
};
};

 

另一重定义方式:

function Thunk(fn) {
return function (...args) {
return function (callback) {
return fn.call(this, ...args, callback);
}
};
};
function f(a, cb) {
 cb(a);
}
let ft = Thunk(f);
// let log = console.log.bind(console);
// ft(1)(log) // 1
ft(1)(console.log)

 

posted @ 2021-10-29 16:39  懒惰的星期六  阅读(120)  评论(0编辑  收藏  举报

Welcome to here

主页