Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修复jslint消息:变量已定义_Javascript - Fatal编程技术网

Javascript 如何修复jslint消息:变量已定义

Javascript 如何修复jslint消息:变量已定义,javascript,Javascript,我试图实现以下代码: var action = function (e) { if (!e) { var e = window.event; } e.cancelBubble = true; if (e.stopPropagation) { e.stopPropagation(); } container.objet.hide(); } 但jslint抱怨如下: “e”已定义。var e=window.e

我试图实现以下代码:

var action = function (e) {     
    if (!e) {
        var e = window.event;
    }
    e.cancelBubble = true;
    if (e.stopPropagation) {
        e.stopPropagation();
    }
    container.objet.hide();
}
但jslint抱怨如下:

“e”已定义。var e=window.event


解决此问题的最佳方法是什么?

使用命名参数创建一个局部作用域变量(这就是
var
所做的)。由于您有一个参数
e
,并且使用
var e
,因此您尝试创建变量两次

从第三次使用
e
的位置删除
var

var event = function (e) {      // First time
    if (!e) {                   // Second time
        e = window.event;       // Third time

在函数中,实际上e被定义为参数。因此,当您定义与参数相同的变量时,它会发出抱怨

作为旁注,使用event作为函数名不会导致问题,因为全局范围(window.event)中已经存在event?只需跳过var语句:e=window.event;将if替换为:e=e | window.event;