ES6箭头函数注意事项

2022-01-05  本文已影响0人  苏码码

箭头函数使用注意事项:
1、函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

var str = 'global'
var obj = {
  str: 'private',
  getStr: () => {
    console.log(this.str) // => global
    // 绑定的是定义者
  // 箭头函数的表现为getStr的value,他被定义在obj对象中,obj的执行上下文就是window
  // this.str 实际上就是window.str
  }
}
obj.getStr()

2、不可以当做构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。箭头函数没有原型对象
箭头函数中,this指向固定化,本身是没有自己的this,所以不能用作构造函数
3、不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以使用rest参数代替。

var n = 10;
function f() {
  return this.n;
}
var obj = {
   n:8,
  f2:f
}
var obj2 = {
  n: 99
}
console.log(obj.f2.call(obj2))  // => 99

// ES6
var n = 10;
var f = () => this.n;
var obj = {
   n:8,
  f2:f
}
var obj2 = {
  n: 99
}
console.log(obj.f2.call(obj2))  // => 10

上一篇 下一篇

猜你喜欢

热点阅读