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。看来我将来要成为前端开发者还得学很多东西。