我遇到了以下 JS 代码 (ES5) 我真的不明白这个变量的含义是什么。
function multiply(a,b){
return a * b;
}
var multipleByThree = multiply.bind(this,3);
multipleByThree(10) // outputs 30
我知道 bind 复制乘法函数,它的“a”参数的值为 3。但是这个变量的目的是什么?
你能帮帮我吗?
最佳答案
您提供给 .bind()
的 this
变量是上下文。在您的例子中,this
指的是全局对象空间。
这是一个如何工作的例子:
var message = 'within global context';
function multiply(a,b){
console.log(this.message);
return a * b;
}
var someOtherContext = {
message: 'within some other context'
};
var multipleByThree = multiply.bind(this,3);
var multipleByThreeOtherContext = multiply.bind(someOtherContext, 3);
console.log(multipleByThree(10))
console.log(multipleByThreeOtherContext(10))
通过改变 multiply 在其中执行的上下文,我们可以改变它引用的变量。
关于javascript - 当涉及到使用 .bind() 的函数柯里化(Currying)时,this 变量的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46324103/