Javascript 为什么我得到未定义的输出?

Javascript 为什么我得到未定义的输出?,javascript,ajax,callback,Javascript,Ajax,Callback,当我将用户名和密码参数传递给setTimeout函数时,为什么将{userName:undefined,password:undefined}作为最终输出?我从setTimeout中删除了它们,然后看到了预期的输出 控制台。日志启动; displayUser=用户名、密码、回调=>{ displayUser函数中的console.logIam setTimeoutuserName,密码=>{ setTimeOut函数中的console.logIam; 回拨{ 用户名:用户名, 密码:密码 };

当我将用户名和密码参数传递给setTimeout函数时,为什么将{userName:undefined,password:undefined}作为最终输出?我从setTimeout中删除了它们,然后看到了预期的输出

控制台。日志启动; displayUser=用户名、密码、回调=>{ displayUser函数中的console.logIam setTimeoutuserName,密码=>{ setTimeOut函数中的console.logIam; 回拨{ 用户名:用户名, 密码:密码 }; }, 3000 } displayUserHasindu,hasindu123,用户=>{ callback函数中的console.logIam; console.loguser; }; 控制台.logend setTimeout回调正在隐藏用户名和密码变量。您可以从setTimeout回调的参数中删除它们,或者将它们作为参数添加到setTimeout调用中,如下所示:

setTimeout((userName, password) => {
    console.log("Iam inside the setTimeOut function");
    callback({
      userName: userName,
      password: password
    });
  }, 3000, userName, password)
setTimeout回调正在隐藏用户名和密码变量。您可以从setTimeout回调的参数中删除它们,或者将它们作为参数添加到setTimeout调用中,如下所示:

setTimeout((userName, password) => {
    console.log("Iam inside the setTimeOut function");
    callback({
      userName: userName,
      password: password
    });
  }, 3000, userName, password)

回调函数接受用户名和密码参数,但从不将它们作为参数传递

您可以为setTimeout提供额外的参数,它们将作为参数传递给回调

控制台。日志启动; displayUser=用户名、密码、回调=>{ displayUser函数中的console.logIam setTimeoutuserName,密码=>{ setTimeOut函数中的console.logIam; 回拨{ 用户名:用户名, 密码:密码 }; },3000,用户名,密码 } displayUserHasindu,hasindu123,用户=>{ callback函数中的console.logIam; console.loguser; };
控制台.logend 回调函数接受用户名和密码参数,但从不将它们作为参数传递

您可以为setTimeout提供额外的参数,它们将作为参数传递给回调

控制台。日志启动; displayUser=用户名、密码、回调=>{ displayUser函数中的console.logIam setTimeoutuserName,密码=>{ setTimeOut函数中的console.logIam; 回拨{ 用户名:用户名, 密码:密码 }; },3000,用户名,密码 } displayUserHasindu,hasindu123,用户=>{ callback函数中的console.logIam; console.loguser; };
控制台.logend;谢谢你的回答我没看见谢谢你的回答我没看见