this指向 以及 call、apply、bind的使用和区别

引入:

let arr = Array.protorype.slice.call(arguments) 

1、能不能写arguments.slice(1),当然不能,这样的话会报错,因为arguments是类数组对象,并没有slice这个方法

2、Array.prototype.slice.call()能把类数组对象转化成数组,当然像传统的dom对象和js对象都是行不通的,我们接下来举个例子:

var a={length:2,0:'lai',1:'hua'};//类数组,有length属性,长度为2,第0个是lai,第1个是hua
console.log(Array.prototype.slice.call(a,0));// ["lai", "hua"],调用数组的slice(0);

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

 this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别

this指向 以及 call、apply、bind的使用和区别 

this指向 以及 call、apply、bind的使用和区别

 this指向 以及 call、apply、bind的使用和区别


 区别:

this指向 以及 call、apply、bind的使用和区别