当我在javascript中使用this关键字时遇到严格违规,这是什么意思?

时间:2012-09-26 13:53:11

标签: javascript jquery this jslint strict-mode

有人可以给我建议。我刚开始使用jslint,我收到一条错误消息“严重违规”,指向“对话框(这个)” -

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');
        });
}

我之前从未见过这条消息。这是什么意思?

1 个答案:

答案 0 :(得分:0)

规范的附录C解释如下:

  

如果在严格模式代码中评估this,则此值不会强制转换为对象thisnullundefined未转换为全局对象,并且原始值不会转换为包装器对象。通过函数调用传递的this值(包括使用Function.prototype.apply和Function.prototype.call进行的调用)不会将传递的this值强制转换为对象(10.4.3,11.1。 1,15.3.4.3,15.3.4.4)。

在上述代码中使用e.target代替this

<强>参考