this 的指向问题和箭头函数

1.this的指向问题

  • 在es5中,this的指向是非常混乱的,
    1:在方法中,this指向调用者
    2:没有调用者时,this指向window
    3:构造函数中,指向创建出来的实例本身
  • 改变this指向的方法
    强制改变this指向 call apply bind
    call方法 语法 call(this的指向,function的参数)
    apply方法 语法 apply(this的指向,[function的参数])
    bind本身不会去执行要改变this指向的这个方法,而是返回一个已经被改变了this指向的新方法

2.箭头函数

  • es6中的箭头函数,就是为了解决 es5 中this指向混乱的问题的
  • 箭头函数没有this,它的this来自上下文的父级,并且指向上下文的父级
  • 箭头函数的this指向不会发生改变,声明时便永久的确定了
  • 箭头函数是匿名函数,不能作为构造函数,不能使用new
  • 箭头函数没有arguments,可以使用展开运算符进行解决“…”
  • 箭头函数不能通过call,apply,bind方法直接修改它的this指向
  • 箭头函数没有原型属性