fangchaolong
文章57
标签24
分类10
箭头函数和普通函数

箭头函数和普通函数

本文主要讲箭头函数和普通函数的区别

区别大致有以下六点:

1:写法不一样

2:普通函数存在变量提升的现象

3:箭头函数不能作为构造函数使用

4:两者this的指向不同

5:箭头函数的arguments指向它的父级函数所在作用域的arguments

6:箭头函数没有new.target

7. 箭头函数没有原型属性

1:写法不一样

2:普通函数存在变量提升的现象

3:箭头函数不能作为构造函数使用

4:两者的this指向不同

普通函数的this指向的是谁调用该函数就指向谁

箭头函数的this指向的是在你书写代码时候的上下文环境对象的this,如果没有上下文环境对象,那么就指向最外层对象window。

5:箭头函数的arguments指向其父级函数作用域的arguments

6:箭头函数没有new.target

先说明下new.target是干嘛的,这家伙是用来检测函数是否被当做构造函数使用,他会返回一个指向构造函数的引用。

因为箭头函数不能当做构造函数使用,自然是没有new.target的。

7: 箭头函数没有原型属性

var a = ()=>{
  return 1;
}

function b(){
  return 2;
}

console.log(a.prototype);  // undefined
console.log(b.prototype);   // {constructor: ƒ}

总结

  1. 箭头函数的 this 永远指向其上下文的 this ,任何方法都改变不了其指向,如 call() , bind() , apply()
  2. 普通函数的this指向调用它的那个对象

无以生计,卖文苟延

微信
支付宝