有人能给我这个建议吗。我刚开始使用jslint,收到一条错误消息"strict violation",指向带有"dialog(this)"-的行
function accessLinkClick(e) {
e.preventDefault();
$('.accessLink')
.unbind('click', accessLinkClick);
dialog(this);
}
function accessControls() {
$('.accessLink')
.bind('click', accessLinkClick);
$('#logoutLink')
.click(function (e) {
window.location = $(this).attr('data-href');
});
}
我以前从未见过这条消息。这是什么意思?
规范的附录C这样解释:
如果
this
是在严格模式代码中计算的,则此值不会被强制到对象。null
或undefined
的this
值不会转换为全局对象,基元值也不会转换为包装对象。通过函数调用传递的this
值(包括使用function.prototype.apply和function.protype.call进行的调用)不会将传递的this
值强制传递给对象(10.4.3、11.1.1、15.3.4.3、15.3.4.4)。
在上述代码中使用e.target
而不是this
。
参考
- 注释ES5:附录C