用法
| 函数 | 用法 |
|---|---|
| call() | call(对象, arg1, arg2, …) |
| apply() | apply(对象,[arg1,arg2, …]) |
| bind() | 函数.bind(对象, arg1, arg2, …) |
- 相同点:都是用来改变this的指向
- 不同点:参数书写方式不同
示例
1 | <!DOCTYPE html> |
call()的应用
利用call()判断数据类型
1
2let type = Object.prototype.toString.call(12);
console.log(type);利用call()翻转字符串
1
2
3
4
5
6
7
8let str = 'hello';
// 方式一,方法内有使用call()
let arr01 = Array.from(str).reverse().join('');
console.log(arr01); // olleh
// 方式二
let arr02 = Array.prototype.reverse.call(str.split('')).join('');
console.log(arr02); // olleh
apply()的应用
利用apply()求最大值
1 | let arr = [1, 4, 2, 3, 9, 7]; |
bind()的应用
对一个函数预设初始参数
1 | function fn() { |