gpt4 book ai didi

javascript - 如何在 JavaScript 中赋予局部变量全局作用域

转载 作者:行者123 更新时间:2023-12-01 03:17:11 25 4
gpt4 key购买 nike

下面的代码片段是Drift chat方法,用于获取用户在聊天中提供的电子邮件ID

我试图通过将其存储在全局变量 data_email 中来访问给定函数范围之外的电子邮件 ID (e.data.email)

我尝试了三种方法来创建data_email全局变量 - windowletconst .

window.drift.on("emailCapture", function(e) {
console.log("user identified as: " + e.data.email);

window.data_email = e.data.email;
// let data_email = e.data.email;
// const data_email = e.data.email;

ga('send', 'event', {
eventCategory: 'driftemail',
eventAction: 'driftemailCaptured',
});
});

console.log(data_email);

尝试完所有方法后,我收到错误 - Uncaught ReferenceError: data_email is not Defined。请任何人建议我解决方法,我将非常感激。我的目标是在给定功能之外访问捕获的电子邮件。

最佳答案

您遇到的问题是您正在监听一个事件。这可能现在发生,也可能稍后发生,也可能永远不会发生。但是您立即尝试控制台记录它。

鉴于您提供的信息量很少,您的问题可能有多种解决方案。但一种解决方案是:

  • 外部函数,该函数接受电子邮件并将其设置为全局

  • 使用电子邮件作为参数调用该函数

类似这样的事情

window.drift.on("emailCapture", function(e) {
console.log("user identified as: " + e.data.email);

setChatEmail(e.data.email);

//window.data_email = e.data.email;
//let data_email = e.data.email;
//const data_email = e.data.email;

ga('send', 'event', {
eventCategory: 'driftemail',
eventAction: 'driftemailCaptured',
});
});


function setChatEmail(email) {
window.data_email = email;
}

进一步阅读:

如何set全局变量。

为什么是global变量不好。

关于javascript - 如何在 JavaScript 中赋予局部变量全局作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45476662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com