javascript - 尝试创建一个将变量名称作为字符串接收的函数

标签 javascript

Js 新手,抱歉,如果这是一个显而易见的问题。

我的代码中有一些与变量名称相对应的字符串。我想将它们放入一个函数中,并使该函数能够更改与字符串同名的变量。

最好的例子是这个“字符串”是从 html 中的数据标签传递的,但我在其他一些情况下也会出现此问题。愿意改变我的整个方法也是我的问题是倒退的前提。

<html>
<div  data-location="deck" onClick="moveCards(this.data-location);">
</html>
var deck = ["card"];
function moveCards(location){
location.shift();};

谢谢!

最佳答案

脚本不应依赖于独立变量的名称;这可能会破坏某些引擎优化和缩小。此外,内联处理程序几乎普遍被认为是非常糟糕的做法 - 请考虑使用 Javascript 正确添加事件监听器。这也将使您完全避免动态变量名称的问题。例如:

const deck = ["card", "card", "card"];

document.querySelector('div[data-location="deck"]').addEventListener('click', () => {
  deck.shift();
  console.log('deck now has:', deck.length + ' elements');
});
<div data-location="deck">click</div>

关于javascript - 尝试创建一个将变量名称作为字符串接收的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57831083/

相关文章:

javascript - 如何使用 PHP 在 Google 表格图表中排序日期?

javascript - Jquery,单击时获取该元素的文本并将其存储在变量中

javascript - 让构造函数返回 Promise 是不好的做法吗?

javascript - Android 为 Node.js 服务器抛出 FileNotFoundException

JavaScript 将数组转换为函数数组

javascript - 如何防止空格只进入数据库?

javascript - Backbone 继承模式与继承同一父类的同胞实例

javascript - 字符串在源代码中换行,而不是在浏览器中换行

javascript正则表达式问号(?)未检测到

javascript - 在 Discord 上设置应用程序命令权限时出现 403 错误