在创建React类时,哪种方法更好?
export default class Foo extends React.Component {
constructor (props) {
super(props)
this.doSomething = this.doSomething.bind(this)
}
doSomething () { ... }
}
或者export default class Foo extends React.Component {
doSomething = () => { ... }
}
我的一位同事认为后者会导致内存问题,因为Babel将代码转译为捕获闭包中的this
,并且该引用将导致实例无法被GC清除。
你对此有什么想法吗?
=>
函数的处理方式与.bind()
有何不同? - Pointy.bind()
是做什么的? - Pointy.bind()
成为语言的一部分之前,它通常是通过闭包实现的,现在没有理由怀疑它基本上不是相同的(尽管有一些附加行为)。 - Pointy