6

我有这样的 JavaScript 代码 =>

(function(){
    document.getElementById("element").onclick = function(){
        var r = confirm("Are you sure ?");
        if (r){
            return true;
        } else {
            return false;
        }
    }
})();

此脚本有效,但只是给我有关严格警告的通知,即匿名函数并不总是返回值

我对这意味着什么很感兴趣,我怎样才能防止这种情况发生,它会引起任何问题吗?请问有什么想法吗?谢谢 :)

4

2 回答 2

8

这不是因为匿名函数,而是因为elsewithreturn是多余的。您不需要它,因为 return 退出函数,如果if语句不正确,return则将执行默认值。

(function(){
    document.getElementById("element").onclick = function(){
        var r = confirm("Are you sure ?");
        if (r){
            return true;
        }
        return false;
    }
})();

编辑:

正如星云所说,这可以做得更短:

(function(){
    document.getElementById("element").onclick = function(){
        return confirm("Are you sure ?");
    }
})();
于 2012-07-27T22:58:08.213 回答
6

实际上,由于脚本中启用了严格模式strict warning,您得到了结果,但是如果您的脚本中没有使用“使用严格”,那么我认为,正如您在评论中所说,您正在使用并且很可能您已经安装了支持JavaScript 调试的浏览器端组件。Komodo IDEFirefox Extension for Debugging

如果是这样,那么它有一些您可以启用或禁用的设置。要禁用strict mode warnings,只需转到Edit Menu > Preferences > Javascript (from category) 并取消选中 Enable Strict Warning Messages,就是这样。但是使用strict mode是一种很好的编程习惯。下面是帮助你的截图

在此处输入图像描述

于 2012-07-27T23:58:36.547 回答