我知道使用基本的闭包是可能的,但我想看看如何使用 .bind() 来完成它以更好地理解这个函数方法。请参阅此示例代码:
function add (a, b) {
return a + b;
}
var addTwo = multiply.bind(this, 2);
addTwo(10); // returns 12
这似乎工作正常。但是,是否可以使用 .bind() 来做同样的事情,但将第二个参数设置为固定值,同时保持第一个参数不变?
我尝试了以下操作:
function add (a, b) {
return a + b;
}
var addThree = multiply.bind(this, null, 3);
addThree(10); // returns 10, presumably because null + 10 === 10
有没有办法使用 .bind() 来选择要设置的参数和保留的参数?
最佳答案
_.partial
确实以 _
作为占位符实现了这一点,即 addThree = _.partial(multiply, _, 3)
; its implementation涉及跟踪部分占位符的位置。虽然这是一本很棒的读物,但它确实涉及到一个图书馆。这是目前在 JS 中最接近位置参数绑定(bind)的东西。
关于javascript - 在函数上使用 .bind() 并将一些参数设置为常量而不是其他参数,JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681966/