# 方法借用
# 定义
当我们想要使用别的类型的方法时,我们不想重写,我们就可以通过借用它的方法,来实现我们的目的。
# 原理
因为在内置方法实现中,用的都是 this,这给我们提供了一种可以任意切换环境。
# 例子
1. 类数组转为数组
var arrayLike = {0: 1, 1: 2, length: 2};
Array.prototype.slice.call(arrayLike);
// [1, 2];
具体是因为:在 slice 内部我们把 环境切换到 arrayLike 上,然后我们通过类数组带有的 length 循环.(所以必须是带有 length 属性的)。
2. 判断类型
Array.prototype.toString.call([1, 2, 3]); // [object Array];
同样在 实现过程中让 O 成为 ToObject(this). 所以才得到 Array。
← for..of遍历对象 常用正则表达式 →