ES6:ES6的call方法和apply方法(五颗星)

1.定义:

将方法借给某个对象的方法。call和apply作用相同,写法不同。

apply() 方法调用一个具有给定 this 值的函数,以及以一个数组(或一个类数组对象)的形式提供的参数

2.语法

使用call方法的语法:(方法.call(对象))

被借用对象.方法.call(借用对象)

使用apply方法的语法:(方法.apply(对象))

被借用对象.方法.apply(借用对象)

3.基本使用(相同点):

  •  1.将方法借给对象使用
  • 2.借用之后自动调用
  • 3.会将方法中的this指向借给的对象

特点:可以设置方法中this的指向——方法中的this指向借给的对象

4.call和apply的区别(传参方式不同,传参给被借用对象.方法):

  • call传参,跟在借用对象后面,用逗号隔开。

被借用对象.方法.call(借用对象,参数1,参数2……)

  • apply传参,不能直接写在后面,要将参数封装在数组中跟在借用对象后面,用逗号隔开

被借用对象.方法.apply(借用对象,[ 参数1,参数2…… ])

5.apply另一个作用:(传参作用)

 <script>
        var arr = [1, 2, 4, 6, 8, 3];
        // max 借给谁不重要, 只要传参方式
        console.log(Math.max.apply(null,arr));//8
    </script>

6.代码演示

<script>
        v

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论
感谢大佬分享
点赞 回复 分享
发布于 2023-03-28 14:21 湖南

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务