为什么jslint会抱怨在声明的函数中使用它?
function navigate() {
var id = $(this).attr('id');
}
给我:
#1 Strict violation.
var id = $(this).attr('id'), // Line 18, Pos 20
然而jslint没有抱怨:
var navigate = function () {
var id = $(this).attr('id');
}
我以相同的方式使用它们,它们都在浏览器中正常工作。
view.on('click', navigate);
仅供参考,我使用event.target
代替了警告,但我想知道区别是什么。
function navigate(event) {
var id = $(event.target).attr('id'); // no complaint
}
答案 0 :(得分:3)
从这里出色的参考资料: http://shichuan.github.com/javascript-patterns/
提供了这些原因,但我不确定它们有多令人信服:
该页面上“命名函数表达式”的原因更具说服力,但仍然没有压倒性。
顺便说一句,那些似乎来自John Resig(jQuery成名),在这里链接: http://ejohn.org/blog/javascript-as-a-first-language/