2016-04-29 57 views
1

我的骨幹查看:關鍵字功能是必要的,下面的代碼:

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 
    }, 

但它似乎工作沒有功能的關鍵字,和我的eslint抱怨:

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

✖ 1 problem (0 errors, 1 warning) 

有什麼遺漏嗎? 感謝

回答

0

速記您使用:

_enter(event) { 
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console 
    } 

是ES2015(ES6)的簡寫這就是爲什麼eslint不抱怨。見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions

具體做法是:

注:簡寫語法使用名爲函數來代替匿名函數(如... FOO:函數(){} ...)。

嘗試添加一個函數名稱給你的任務。 (http://eslint.org/docs/rules/func-names

_enter: function _enter(event) { 
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console 
    } 

已經命名的功能,而不是匿名函數與漂浮在調試過程中,更明確的堆棧各地真正幫助跟蹤

+0

但爲什麼_enter(事件){}工作?函數關鍵字缺失。 – BAE

+0

我相信(可能是錯誤的)_enter(event){}是我上面發佈的函數的簡稱。 –

+0

看看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions –