Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 如何访问addEventListner方法之外的变量值?_Javascript_Function_Addeventlistener - Fatal编程技术网

Javascript 如何访问addEventListner方法之外的变量值?

Javascript 如何访问addEventListner方法之外的变量值?,javascript,function,addeventlistener,Javascript,Function,Addeventlistener,我正在尝试访问addeventlistner外部的“var accInfo”值,以便使用此对象进行进一步编码。我是javascript的初学者,不知道jquery和其他框架,所以请指导我。谢谢 let form1 = document.getElementById('form1'); form1.addEventListener('submit', () => { let fname = document.getElementById("defaultRegisterFormFi

我正在尝试访问addeventlistner外部的“var accInfo”值,以便使用此对象进行进一步编码。我是javascript的初学者,不知道jquery和其他框架,所以请指导我。谢谢

let form1 = document.getElementById('form1');

form1.addEventListener('submit', () => {
    let fname = document.getElementById("defaultRegisterFormFirstName").value
    let lname = document.getElementById("defaultRegisterFormLastName").value
    let email = document.getElementById("defaultRegisterFormEmail").value
    var accInfo = acc(fname, lname,email);
    console.log(accInfo)
    return false
})

function acc(fname,lname, email){
    let accInfo = {fname, lname, email}
    return accInfo;
}


您可以分配一个
全局变量
,并将其保存,以便在侦听器外部进一步使用,如下所示:

let form1 = document.getElementById('form1');
let globalAccInfo = null;
form1.addEventListener('submit', () => {
    let fname = document.getElementById("defaultRegisterFormFirstName").value
    let lname = document.getElementById("defaultRegisterFormLastName").value
    let email = document.getElementById("defaultRegisterFormEmail").value
    var accInfo = acc(fname, lname,email);
    globalAccInfo = accInfo; //update it here
    console.log(accInfo)
    return false
})

function acc(fname,lname, email){
    let accInfo = {fname, lname, email}
    return accInfo;
}

将accInfo定义为全局变量,如下所示:

var accInfo; //leave it undefined for now
form1.addEventListener('submit', () => {
    //...
    accInfo = acc(fname, lname,email);
    //...
})

function acc(fname,lname, email){
    let anotherVariableName = {fname, lname, email}
    return anotherVariableName;
}

//now you can use it outside, but it will be undefined until the event listener is called
console.log(accInfo);

您必须将函数acc更改为其变量的另一个名称,但这是否回答了您的问题?