1.箭头函数是匿名函数,不能作为构造函数,不能使用new
2.箭头函数内没有arguments
3.this指向不同,箭头函数的this
取决于定义位置父级的上下文
,跟使用位置没关系,普通函数this
指向调用的那个对象
4.箭头函数不能通过call() 、 apply() 、bind()
方法直接修改它的this指向
5.箭头函数没有原型属性
this指向:
箭头函数中的this指向永远指向父级的上下文
而js中的this指向则是谁调用this this就指向谁 如果没有被调用 this则指向最高级window
构造函数中的this, 指向通过这个构造函数创建出来的实例本身
可强制改变this指向的方法有call apply bind
普通函数的arguments和类数组转换成数组:
Array.prototype.slice = function (){
console.log(this); //this = arguments
let newArr = [];
for (let i=0;i<this.length;i++){
newArr.push(this[i])
}
return newArr
}
let arr = [1,2,34];
let arr2 = arr.slice();
arr2[0] = 1000;
console.log(arr,arr2);
/*function fn(){
let arr = Array.from(arguments);
let arr2 = Array.prototype.slice.call(arguments)
let arr3 = [].slice.call(arguments)
console.log(arguments);
console.log(arr,arr2);
}
fn(1,2,3,4,5)*/