会出现这问题是因为你完全没明白所谓的“箭头函数”的意义。 所谓箭头函数,目的其实就是为了实现函数式的 lambda 表达式的,它本身就是为了函数式而添加进去的新概念,所谓“方便写”只是附带的特性罢了。 然而,函数式和面向对象两种编程语言范式是冲突的,冲突的点在于数据组织的方式不一致导致的。面向对象是利用 “对象” 来集合一组数据和方法,而函数式是通过函数来集合一组数据,并且他的方法是和数据分开的。所以在函数式里面不会存在 this 这种上下文概念。 所以你在面对对象的领域用函数式的东西,不容易出错才奇怪呢。
会出现这问题是因为你完全没明白所谓的“箭头函数”的意义。
所谓箭头函数,目的其实就是为了实现函数式的 lambda 表达式的,它本身就是为了函数式而添加进去的新概念,所谓“方便写”只是附带的特性罢了。
然而,函数式和面向对象两种编程语言范式是冲突的,冲突的点在于数据组织的方式不一致导致的。面向对象是利用 “对象” 来集合一组数据和方法,而函数式是通过函数来集合一组数据,并且他的方法是和数据分开的。所以在函数式里面不会存在 this 这种上下文概念。
所以你在面对对象的领域用函数式的东西,不容易出错才奇怪呢。
备用链接