call apply bind区别
function k6 (){
console.log(arguments)
console.log(this)
}
const obj={}
k6.call(obj,1,2,3,4,5)
// k6.apply(obj,1,2,3,4,5)//报错,apply只能接受两个参数,第二个为数组,要不然报错
k6.apply(obj,[1,2,3,4,5])
k6.bind(obj,[1,2,3,4,5])()
const k7=k6.bind(obj,[1,2,3,4,5])
console.log(typeof k6.apply(obj,[1,2,3,4,5]))//undefined,apply.call没有返回值
console.log(typeof k7)//function,有返回值
区别
1,call和apply:只有一个区别,就是 call()
方法接受的是一个参数列表,而 apply()
方法接受的是一个包含多个参数的数组。apply()接受一个参数列表的话被报错.
2,**call,apply和bind区别:**bind返回一个函数,需要在此调用才能执行,call和apply会立即执行;