javascript - 将函数内部的变量传递给其他函数而不更改其在 Javascript 中的值
问题描述
我有 2 个函数我想知道如何将在函数 generate() 中生成随机数的变量“foto”传递给函数 verify(),因为 indexOf 将验证在 generate() 上生成的数字函数并将检查此值是否在 verify() 中定义的数组之一中。
function generate() {
var score = document.getElementById('score');
var foto = Math.floor(Math.random() *20) + 1;
var fotoDOM = document.querySelector('.foto');
fotoDOM.src = 'foto-' + foto + '.jpg';
console.log(foto);
document.getElementById('photo').style.animation ="appearPerson 1s";
score.innerHTML = foto;
}
document.querySelector('.btn').addEventListener('click', verify);
function verify() {
var yesMeetup = [0,1,2,3,4,5,6,7,8,9,10,12,13,14,15];
var notMeetup = [16,17,18,19,20];
var notButton = document.getElementById('no');
var yesButton = document.getElementById('yes');
var decisao = document.getElementById('decisao');
debugger
if (yesButton) {
if (yesMeetup.indexOf(foto) ) {
decisao.textContent = "You got it";
} else if (notMeetup.indexOf(foto) ) {
decisao.textContent = "wrong";
}
}
else if (notButton) {
if (notMeetup.indexOf(foto) ) {
decisao.textContent = "You Gou it";
} else if (yesMeetup.indexOf(foto) ) {
decisao.textContent = "Wrong";
}
}
}
解决方案
在函数外部声明 foto 变量generate
(这将使其成为全局变量),它将在verify
函数中可用。我建议您阅读有关闭包的信息
var foto;
function generate(){
var score = document.getElementById('score');
foto = Math.floor(Math.random() *20) + 1;
var fotoDOM = document.querySelector('.foto');
fotoDOM.src = 'foto-' + foto + '.jpg';
console.log(foto);
document.getElementById('photo').style.animation ="appearPerson 1s";
score.innerHTML = foto;
}
document.querySelector('.btn').addEventListener('click', verify);
function verify()
{
var yesMeetup = [0,1,2,3,4,5,6,7,8,9,10,12,13,14,15];
var notMeetup = [16,17,18,19,20];
var notButton = document.getElementById('no');
var yesButton = document.getElementById('yes');
var decisao = document.getElementById('decisao');
debugger
if(yesButton){
if(yesMeetup.indexOf(foto) ){
decisao.textContent = "You got it";
}else if(notMeetup.indexOf(foto) ){
decisao.textContent = "wrong";
}
}
else if (notButton){
if(notMeetup.indexOf(foto) ){
decisao.textContent = "You Gou it";
}else if(yesMeetup.indexOf(foto) ){
decisao.textContent = "Wrong";
}
}
}
推荐阅读
- xml - XSLT if 条件:将元素的值与字符串进行比较
- python - 指定磁盘类型时无法使用 python 代码创建磁盘
- javascript - 未定义索引:用户名
- python - Errno 13 Permission denied for dockerised celery worker
- r - 初始 Rattle 问题 (Os)“错误:-with-x11”和“错误:gtk+ 2.24.32 未构建”
- flutter - 无法在 TabBar 中显示 Tabview,并链接内容
- windows - PowerShell - git checkout -B 没有重置或替代方案?
- jquery - 仅当字段包含数字内容时才验证字段 jquery 验证
- intellij-idea - Azure Toolkit for Intellij 插件在 Azure 设备登录后错误地显示“无订阅”
- sharepoint - 列表字段无处可自动填充