js中call函数和apply的区别是什么?什么叫call 方法可以用来代替另一个对象调用一个方法

时间:2022-09-29 13:37:33
js中call函数和apply的区别是什么?什么叫call 方法可以用来代替另一个对象调用一个方法,这句话该怎么理解?

6 个解决方案

#1


call/apply区别在第二个参数的传入,2个都是用于更改对应函数内this的指向用的,看这个: JavaScript apply与call的用法意义及区别

#2


区别是call()的第二个之后的参数要逐个写。apply()第二个的参数是个数组。数组中可包含多个参数
对象A.方法.call(对象B,1,2,3) 等价于 对象A.方法.apply(对象B,[1,2,3]);


call 方法可以用来代替另一个对象调用一个方法,可以简单的理解为:

对象A.方法.call(对象B,1,2,3)
等价于
对象B.方法 = 对象A.方法;
对象B.方法(1,2,3);
delete 对象B.方法;

#3


http://blog.csdn.net/xllily_11/article/details/51480723

#4


call/play都是改变this的指向,区别是call(this,参数,参数) aplly(this,参数数组)

#5


引用 4 楼 shire0905 的回复:
call/play都是改变this的指向,区别是call(this,参数,参数) aplly(this,参数数组)

apply(this,参数数组)

#6


楼主你好,call和apply的区别确实有够多的,下面文章供你参考
http://www.cnblogs.com/chenjef/p/4889767.html

#1


call/apply区别在第二个参数的传入,2个都是用于更改对应函数内this的指向用的,看这个: JavaScript apply与call的用法意义及区别

#2


区别是call()的第二个之后的参数要逐个写。apply()第二个的参数是个数组。数组中可包含多个参数
对象A.方法.call(对象B,1,2,3) 等价于 对象A.方法.apply(对象B,[1,2,3]);


call 方法可以用来代替另一个对象调用一个方法,可以简单的理解为:

对象A.方法.call(对象B,1,2,3)
等价于
对象B.方法 = 对象A.方法;
对象B.方法(1,2,3);
delete 对象B.方法;

#3


http://blog.csdn.net/xllily_11/article/details/51480723

#4


call/play都是改变this的指向,区别是call(this,参数,参数) aplly(this,参数数组)

#5


引用 4 楼 shire0905 的回复:
call/play都是改变this的指向,区别是call(this,参数,参数) aplly(this,参数数组)

apply(this,参数数组)

#6


楼主你好,call和apply的区别确实有够多的,下面文章供你参考
http://www.cnblogs.com/chenjef/p/4889767.html