为什么它返回undefined?情节是什么?

时间:2016-12-25 11:28:23

标签: javascript jquery javascript-events javascript-objects

当通过函数参数传递'y'时它返回undefined但是没有参数它会返回有效值,但是为什么它在通过参数时返回undefined?

var y = 'Hello World';
$("button").click(function(e){
    alert(y);
    //--Returns Hello World
});

var y = 'Hello World';
$("button").click(function(e,y){
    alert(y);
    //--Returns Undefined
});

2 个答案:

答案 0 :(得分:0)

如果您想访问y变量,请从y移除(e,y)

var y = 'Hello World';
$("button").click(function(e){
    alert(y);
});

如果您需要有关当前event的信息(在您的示例中'点击'):

$("button").click(function(e){
    console.log(e);
});

答案 1 :(得分:0)

那是因为你没有 y传递给该函数。它是一个匿名函数声明,碰巧有一个名为y参数变量。你没有调用那个函数。该函数的调用是由click事件完成的。

click事件只将一个参数传递给回调函数,即Event object。这就是为什么该函数的第二个变量默认为undefined。