老师可以介绍下call和apply吗

来源:5-12 函数的间接调用

慕粉4184331

2020-10-30 19:23:23

# 具体遇到的问题

这里大概听懂了,但是感觉很模糊没有具体的概念,麻烦老师介绍下


写回答

1回答

好帮手慕慕子

2020-10-31

同学你好, 具体可以参考如下解析理解:

1、相同点, call和apply的主要作用都是可以改变函数的this指向。

http://img.mukewang.com/climg/5f9cc3d70904ff4903580287.jpg

函数a内部的this默认指向window,但是使用apply和call方法后,改变了函数a内部的this指向了函数b

http://img.mukewang.com/climg/5f9cc3e2095052ca08640117.jpg

2、call和apply的区别就是: call可以将多个参数传入函数中, apply可以将数组作为参数传入函数中

(1) call(obj, arg1, arg2...) 第一个参数表示this指向的对象, 第二个参数及后面的表示传入函数的参数

http://img.mukewang.com/climg/5f9cc42909d778e104730225.jpg

http://img.mukewang.com/climg/5f9cc438095371fe08590241.jpg

(2)apply(obj, arg)第一参数表示this指向的对象, 第二个参数表示以数组的形式将参数传入函数
http://img.mukewang.com/climg/5f9cc44b0995aa4404690282.jpg

http://img.mukewang.com/climg/5f9cc45309f4481608260300.jpg

对于这两个方法, 目前阶段, 同学简单了解即可,以后随着学习的深入,会有更多的使用案例,应用多了,同学慢慢就理解了。

祝学习愉快~

0

0 学习 · 14456 问题

查看课程