美文网首页
箭头函数与普通函数区别

箭头函数与普通函数区别

作者: summer0125 | 来源:发表于2020-04-08 19:36 被阅读0次

箭头函数区别总结:

  1. this永远指向上下文,call,apply,bind无法改变。
  2. 不能作为构造函数,使用new命令
  3. 箭头函数不绑定arguments,取而代之用rest参数…
  4. 箭头函数没有原型属性prototype // undefined
  5. 箭头函数不能当做Generator函数,不能使用yield关键字
  6. 变量提升
  7. 箭头函数不能换行
  8. 右侧直接为表达式时,直接return

箭头函数区别详解:

  1. 箭头函数this永远指向上下文this,call,apply,bind都无法改变this指向

通过 call() 或 apply() 方法调用一个函数时,只是传入了参数而已,对 this并没有什么影响

var obj = {
  a: 10,
  b: function(n){
    var f = (v) => v + this.a;
    return f(n);
  },
  c: function(n) {
    var f = (v) => v + this.a;
    var m = {a:20};
    return f.call(m,n);
  }
}

console.log(obj.b(1)); //11
console.log(obj.c(1)); //11
  1. 不能作为构造函数,不能使用new
var B = ()=>{
  value:1;
}

var b = new B(); //TypeError: B is not a constructor
  1. 箭头函数不绑定arguments,取而代之用rest参数…
function A(a){
  console.log(arguments); //[object Arguments] {0: 1}
}

var B = (b)=>{
  console.log(arguments); //ReferenceError: arguments is not defined
}

var C = (...c)=>{ //...c即为rest参数
  console.log(c); //[3]
}
A(1);
B(2);
C(3);
  1. 箭头函数没有原型属性
var a = ()=>{
  return 1;
}

function b(){
  return 2;
}

console.log(a.prototype);//undefined
console.log(b.prototype);//object{...}
  1. 箭头函数不能当做Generator函数,不能使用yield关键字

  2. 变量提升

由于js的内存机制,function的级别最高,而用箭头函数定义函数的时候,需要var(let、const)关键字,而var所定义的变量不能得到变量提升。故箭头函数一定要定义于调用之前。

  1. 箭头函数不能换行
var a = ()
          =>1; //SyntaxError: Unexpected token =>

相关文章

  • 箭头函数与普通函数的区别

    箭头函数与普通函数的区别,实质是我们是否理解了箭头函数,在我刚开始接触ES6时,印象中的箭头函数与普通函数的区别就...

  • es6应该搞清楚的问题

    一、箭头函数与普通functon有什么区别?箭头函数可以完全代替普通functon吗? 1.箭头函数是匿名函数,不...

  • es6

    箭头函数与普通函数的区别 箭头函数是匿名函数,不能作为构造函数,不能使用new 箭头函数不绑定arguments,...

  • 箭头函数与普通函数的区别你真的明白吗

    箭头函数与普通函数的区别? 构造函数可以使用new 生成实例,那么箭头函数可以吗?为什么?/答: 箭头函数比普通函...

  • 常见前端面试题

    箭头函数与普通函数的区别 箭头函数语法比普通函数更加简洁,但箭头函数中没有arguments,所以形参可以使用展开...

  • es6相关

    1.箭头函数与普通函数的区别 箭头函数 let fun = () => { console.log('lala...

  • 箭头函数和普通函数的主要区别是什么?

    箭头函数和普通函数的主要区别: this的指向问题,箭头函数是不存在this的(也是箭头函数和普通函数最主要的区别...

  • 简单说 JavaScript的箭头函数

    说明箭头函数本质还是函数,我们来看看他与JavaScript中普通函数的区别,先看看写法上的区别。 写箭头函数,我...

  • 函数的扩展

    函数的扩展 箭头函数和普通函数区别箭头函数没有this对象,箭头函数的里的this始终指向定义时所在对象,普通函数...

  • js理解普通函数和箭头函数

    普通函数: 箭头函数: 区别: 构造函数和原型 箭头函数不能作为构造函数 不能new。会报错 箭头函数没有原型属性...

网友评论

      本文标题:箭头函数与普通函数区别

      本文链接:https://www.haomeiwen.com/subject/xlrxmhtx.html