Javascript 关键字功能在以下代码中是必需的:

Javascript 关键字功能在以下代码中是必需的:,javascript,backbone.js,Javascript,Backbone.js,我的主要观点是: module.exports = Backbone.View.extend({ tagName: 'div', events: { 'click #saveReportBtn': '_handleSaveReport', 'click #saveQuery': '_handleSaveQuery', 'keydown #queryToolbar': '_enter', }, _enter( event ) { console.lo

我的主要观点是:

module.exports = Backbone.View.extend({
  tagName: 'div',
  events: {
    'click #saveReportBtn': '_handleSaveReport',
    'click #saveQuery': '_handleSaveQuery',
    'keydown #queryToolbar': '_enter',
  },
  _enter( event ) {
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console
  },
...
有些人建议使用:

  _enter: function ( event ) {
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console
  },
但它似乎在没有function关键字的情况下工作,我的eslint抱怨:

src/myfile.js
  100:11  warning  Missing function expression name  func-names

✖ 1 problem (0 errors, 1 warning)
少了什么?
感谢您使用的速记:

_enter( event ) {
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console
  }
是ES2015(ES6)速记,这就是为什么eslint没有抱怨。看

具体而言:

注意:简写语法使用命名函数而不是匿名函数(如…foo:function(){}…)

尝试将函数名添加到分配中。()


使用命名函数,而不是四处浮动的匿名函数,确实有助于调试过程和更明确的堆栈跟踪

_enter( event ) {
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console
  }
是ES2015(ES6)速记,这就是为什么eslint没有抱怨。看

具体而言:

注意:简写语法使用命名函数而不是匿名函数(如…foo:function(){}…)

尝试将函数名添加到分配中。()


拥有命名函数,而不是四处浮动的匿名函数,确实有助于调试过程和更显式的堆栈跟踪

,但是为什么_enter(event){}可以工作呢?函数关键字丢失。我相信(可能是错误的)_enter(event){}是我上面发布的函数的简写。请看我编辑的答案,以扩展ES2015Thank。看来我将来要成为前端开发者还得学很多东西。但是为什么{u enter(event){}能工作呢?函数关键字丢失。我相信(可能是错误的)_enter(event){}是我上面发布的函数的简写。请看我编辑的答案,以扩展ES2015Thank。看来我将来要成为前端开发者还得学很多东西。