匿名函数并不总是返回值

时间:2012-07-27 22:56:14

标签: javascript komodo

我有像这样的JavaScript代码=>

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

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

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

2 个答案:

答案 0 :(得分:8)

这不是因为匿名函数,而是elsereturn的冗余。您不需要它,因为返回退出函数,如果if语句不为真,则默认return将执行。

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

修改

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

(function(){
    document.getElementById("element").onclick = function(){
        return confirm("Are you sure ?");
    }
})();

答案 1 :(得分:6)

实际上由于你的脚本中启用了strict mode而得到的strict warning但是如果你的脚本中没有使用“use strict”那么我认为,正如你在评论中说的那样你正在使用Komodo IDE并且很可能已经安装了Firefox Extension for Debugging,这是支持JavaScript调试的浏览器端组件所必需的。

如果是这样,那么它有一些你可以使用或禁用的设置。要停用strict mode warnings,只需转到修改菜单>偏好> Javascript(来自类别)并取消选中启用严格警告消息,就是这样。但是使用strict mode是一种很好的编程习惯。以下是帮助您的截图

enter image description here