
函数
|
163
这里实现的
partial()
函数有一个不足。由于固定的参数在前面,如果想锁定后面
的参数,不得不锁定在它之前的所有参数。如果你想使用
partial()
包装原方案中
的
makeString()
函数
,要重新排列参数。
function
makeString(prefix, suffix, str) {
return
prefix + str + suffix;
}
const
namedEntity = partial(makeString, "&#", ";");
console.log(namedEntity(169));
6.8.5
扩展:使用
bind()
提供部分参数
使用
Function.bind()
方法也可以实现部分应用。这个方法返回一个新函数,把
this
设为第一个参数提供的值。余下的所有参数都放在新函数参数列表的前部。
除了使用
partial()
创建返回具名实体的函数之外,现在还可以使用
bind()
实现
相同的功能,传入的第一个参数为
undefined
。
function
makeString(prefix, suffix, str) {
return
prefix + str + suffix;
}
const
named = makeString.bind(
undefined
, "&#", ";");
console.log(named(169)); // "©"
至此,为一个函数创建接受不同参数数量的版本,你掌握了两种好方法。
6.9
使用函数绑定修正
this
6.9.1 ...