【发布时间】:2017-04-18 00:13:06
【问题描述】:
我突然想到:
class Jamie {
method function(){
.... //Is a method
}
notAMethod = () => {
....//Is not a method?
}
}
我显然对这件事感到困惑,但为什么我不能使用箭头函数并维护this = Jamie 的上下文?而不是使用bind 来保持上下文?
【问题讨论】:
-
不,这是分配给箭头函数的类属性。它本身不是一种方法。
-
它不是 ES6 的一部分,因为它仍然是一个命题,但你可以使用 babel 的 Class properties transform 来做到这一点。
-
所以确实它不是一种方法,而只是一个属性,这在 imo 中是不好的做法。因为它会导致意外的行为。然而,我很懒惰。
-
当您执行
this.method = this.method.bind(this)时,您也会获得一个属性。使用箭头函数更短,更具表现力。 -
method function(){…}不是完全有效的语法。
标签: javascript