Строгое нарушение при использовании 'this' в объявленной функции нет нарушения выражения функции

Почему 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
}
5
задан Abdullah Jibaly 13 April 2012 в 00:38
поделиться