javascript - 为什么作为箭头函数的方法在 react 类中起作用,但在普通类中不起作用?

标签 javascript reactjs ecmascript-6 es6-class arrow-functions

我们可以将组件类的方法声明为箭头函数,如下所示:

class SomeComponent extends React.Component {
  someMethod = () => { // <<----- This does not throw error
    // some code
  }
}

..不会抛出任何错误,但下面会抛出任何错误:

class SomeNormalClass {
  someMethod = () => { // <<----- This throws error
    // some code
  }
}

someMethod之后显示意外的=。如果我将 someMethod 更改回正常函数,而不是将其声明为箭头函数,则效果很好,如下所示。为什么?

class SomeNormalClass {
  function someMethod() { // <<----- This works fine
    // some code
  }
}

最佳答案

第一个示例中的 someMethod 是类的属性,而不是方法。 BabelJS 支持类中的属性,但原生 js 不支持。 你可以看到差异here 。您应该在 Vanilla JS 的 constructor 中添加一些属性。

关于javascript - 为什么作为箭头函数的方法在 react 类中起作用,但在普通类中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967255/

相关文章:

javascript - webpack如何添加变量构造函数的原型(prototype)函数

javascript - 窗口对象、窗口函数和对象函数

javascript - 为什么 React .setState() 需要一组额外的括号?

javascript - 如何使用流将 MediaRecorder Web API 输出保存到磁盘

reactjs - 未找到 npm 包 - SyntaxError : Unexpected token '<'

reactjs - 为什么 useContext 在没有 Context.Provider 的情况下也能工作?

javascript - 如何在reactjs中根据日期降序对对象数组进行排序?

javascript - 未调用 ES6 angular-meteor ng-table getData 函数

javascript - PHP/HTML 提交后记住所选值 - 从 MySQL 填充的选项

javascript - 在 AJAX 响应数据上使用 jQuery