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%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理