javascript - 简单的Javascript函数问题

标签 javascript

这可以通过一个简单的按钮调用 addDamage 函数来实现:

var damage=0;
function addDamage()
{
damage+=10;
document.getElementById("p1s").innerHTML=damage;
}

这不会:

var damage=0;
function addDamage(who)
{
who+=10;
document.getElementById("p1s").innerHTML=who;
}

使用此按钮:

<button type="button" onclick="addDamage(damage)">Add</button>

这可能是显而易见的。我真的是新人。谢谢!

最佳答案

您要在函数中向 who 添加 10。通过调用时传递的参数,who 获取 damage 的值,这是一个全局变量。

该函数使用 who 的更新值来设置元素的innerHTML。所有这些都有效。然后函数退出。 who 超出范围。 who 的更新值现已被遗忘。

当您再次单击该按钮时,它会使用 damage 的值,该值仍然是其原始值 0(零)。 who 再次获取该值,然后获取 10+,即 10,依此类推。

<小时/>

要更新全局变量,请从函数返回它,并将其设置在处理程序中。

var damage=0;
function addDamage(d)
{
  d+=10;
  document.getElementById("p1s").innerHTML=d;
  return d;
}

<button type="button" onclick="damage=addDamage(damage);">Add</button>

关于javascript - 简单的Javascript函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999235/

相关文章:

javascript - "this"in jQuery $(selector).每个函数引用页面

javascript - 随机化 Dribbble API 调用结果

javascript - 复选框 : on/off using button

javascript - Socket.io 需要很长时间才能触发断开连接事件

javascript - 查看 Reveal.js 浏览器之间的端口不一致

javascript - 使用动态 javascript 将 InnerHTML 放置在正确的位置

javascript - 如何将 InMemoryUploadedFile 上传到我的 S3 存储桶?

javascript - D3 : SVG Background: Blurry

javascript - ng-token-auth ui-router 解析器导致黑屏

javascript - Bootstrap 中每行有多个文本区域