为什么this.add不是对象上下文中的函数

时间:2017-07-19 16:00:58

标签: javascript arrow-functions

在以下示例中,我并不清楚为什么this.add未定义。我怀疑这是因为箭头功能立即执行并且在编译时并且add功能尚不存在。这个假设是否正确?或者我错过了什么。

const arr= [1, 2, 3]
const squares = {  
  num: (arr) => {
    return arr.map((x) => {
      return (x * x) + this.add()
    })
  },
  add: () => {
    return 1
  }
}
//TypeError: this.add is not a function
console.log(squares.num(arr)) 

1 个答案:

答案 0 :(得分:1)

您正在使用sudo apxs -i -a -c my_module.c && sudo service apache2 restart 一直离开对象。您需要避免使用lexical this的箭头函数:

请参阅documentation for arrow functions

  

“箭头函数表达式的语法比函数表达式短,并且不会绑定它自己的...”

num