一、参数传递方式不同 call方法接受的是若干个参数列表,名列前茅个参数表示要改变上下文的对象,后面的参数表示要传递给函数的参数。 apply方法接收的是两个参数,名列前茅个参数表示要改变上下文的对象,第二个参数则是一个包含多个
call方法接受的是若干个参数列表,名列前茅个参数表示要改变上下文的对象,后面的参数表示要传递给函数的参数。
apply方法接收的是两个参数,名列前茅个参数表示要改变上下文的对象,第二个参数则是一个包含多个参数的数组。
call方法适合参数数量固定的情况,例如,知道要传递给函数的参数具体有哪些时,可以使用call方法。
apply方法适用于参数数量不确定的情况,例如,不知道要传递给函数的参数有多少个时,或者参数以数组形式存在时,可以使用apply方法。
在使用call方法时,需要将上下文对象作为名列前茅个参数传递,然后按顺序传递函数的参数。例如:fun.call(obj, arg1, arg2, arg3)。
使用apply方法时,上下文对象仍然作为名列前茅个参数,但是函数的参数需要放在一个数组(或类数组对象)内,作为第二个参数传递。例如:fun.apply(obj, [arg1, arg2, arg3])。
1、call的概念
call是Function.prototype的一个方法,它的主要作用是改变函数体内this的指向,并且可以接受参数列表,名列前茅个参数用于指定新的this的指向,后面的参数则是函数运行时的参数。
2、apply的概念
apply同样是Function.prototype的一个方法,它的功能与call方法类似,都是用来改变函数体内this的指向,不同之处在于apply接受两个参数,名列前茅个参数指定新的this的指向,第二个参数则是一个数组,其中包含了函数运行时的参数。
--结束END--
本文标题: JS中call和apply的区别
本文链接: https://lsjlt.com/news/521063.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0