我知道這可以使用基本的閉包,但我想看看如何使用.bind()來更好地理解這個函數方法。看到這個示例代碼:在一個函數上使用.bind(),並將一些參數設置爲常量,但不設其他值,JavaScript
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離開()?
有趣的是,這實際上是C++ 11針對它自己的'bind'實現的目標。儘管如此,這不是一件容易用更動態的語言來完成的事情。 – Katana314
這不是[currying](https://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application),這只是部分應用 – Bergi