关于call和apply的说法,错误的是
时间: 2023-05-03 12:01:36 浏览: 126
call和apply是JavaScript中的函数调用方法,call可以在指定的作用域中调用一个函数,同时还可以传递参数,而apply的用法与call类似,唯一不同的是参数需要以数组的形式传递。如果使用这两种方法时,传入的第一个参数不是一个对象或null,则会抛出TypeError的错误。
相关问题
关于call,apply,bind方法,下列说法正确的是
1. call、apply、bind都是用来改变函数执行时的this指向的方法,可以让函数在不同的上下文中执行。
2. call和apply的作用相同,都是立即调用函数并改变函数的this指向,区别在于传参方式不同,call是一个一个传参,apply是以数组的形式传参。
3. bind方法不会立即调用函数,而是返回一个新的函数,新函数的this指向被绑定的对象,可以在需要的时候调用。
4. call、apply、bind都是函数对象的方法,只能被函数调用,不能被其他类型的对象调用。
5. call、apply、bind方法的第一个参数都是要绑定的this对象,如果不传参数或传null或undefined,则默认绑定全局对象window。
6. call、apply、bind方法的第二个参数开始是函数的实参,如果不传参数,则函数不会接收任何实参。
call方法和apply的区别是什么
call和apply都是调用函数的方法,不同的是call是将参数列表传递给函数,而apply是将参数列表作为数组传递给函数。例如:
function func(message){
console.log(message);
}
// 使用call调用func函数
func.call(null, "hello world");
// 使用apply调用func函数
func.apply(null, ["hello world"]);