js call apply bind区别
时间: 2023-05-03 14:01:19 浏览: 129
call、apply、bind都是JavaScript中用于处理函数调用的方法。call和apply的作用是改变函数中this的指向,call传参是一个一个的传,apply是将参数打包成数组传递。bind方法不是立即执行函数,而是用来生成一个新的函数,新函数的this值被绑定到指定的对象,而不是被隐式绑定。同时,bind方法也支持预设参数,返回一个可以延迟调用的函数。
相关问题
j s的call apply bind区别
JavaScript 中的 call、apply 和 bind 都是 Function 对象的方法,用于改变函数的调用对象。
- call 方法可以将函数的调用对象改为传入的第一个参数,并将其余参数传入函数进行调用。
- apply 方法与 call 方法类似,只是将其余参数传入函数的方式不同,apply 方法接受的是一个参数数组。
- bind 方法用于创建一个新的函数,该函数的调用对象为传入的第一个参数,并且将其余参数预先绑定到该函数上。
总之:
call: 调用一个对象的一个方法,用另一个对象替换当前对象。
apply: 调用一个对象的一个方法,用另一个对象替换当前对象。
bind: 创建一个新函数,当被调用时,将其this关键字设置为提供的值。
call apply bind传参区别
好的,让我来回答你的问题。在JavaScript中,call、apply和bind都可以用来改变函数的this指向。它们之间的主要区别在于它们传递参数的方式。
1. call():使用该方法可以改变函数的this指向,并立即执行该函数。它允许你以逐个参数的形式传递参数给函数。例如:
function add(a, b) {
return a + b;
}
add.call(null, 1, 2); // 3
2. apply():使用该方法同样可以改变函数的this指向,并立即执行该函数。和call()不同的是,它允许你把参数作为数组传递给函数。例如:
function add(a, b) {
return a + b;
}
add.apply(null, [1, 2]); // 3
3. bind():使用该方法也可以改变函数的this指向,但它返回一个新的函数,而不会立即执行该函数。bind()方法允许你预设传递给函数的一个或多个参数,以便在执行函数时保持这些参数不变。例如:
function add(a, b, c) {
return a + b + c;
}
var add1 = add.bind(null, 1);
add1(2, 3); // 6
以上就是call()、apply()和bind()传参的区别了。希望能对您有所帮助。
阅读全文