2

有人可以给我这个建议。我刚开始使用 jslint,我收到一条错误消息“严格违反”,指向带有“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');
        });
}

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

4

1 回答 1

0

规范的附件 C 是这样解释的:

如果this在严格模式代码中进行评估,则this 值不会被强制转换为 object。or的this值不转换为全局对象,原始值不转换为包装对象。通过函数调用(包括使用 Function.prototype.apply 和 Function.prototype.call 进行的调用)传递的值不会强制将传递的值传递给对象(10.4.3、11.1.1、15.3.4.3、15.3.4.4) .nullundefinedthisthis

在上述代码中使用e.target而不是。this

参考

于 2016-02-19T07:59:39.330 回答