吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1137|回复: 7
收起左侧

[求助] JS如果使用变量做变量名

[复制链接]
cqwcns 发表于 2022-7-1 10:47
以下是一个简单的Demo,当然实际场景是比较复杂的。


前面会有一些逻辑来生成一个cName变量,我希望后面使用这个变量的值来新建另一个变量。
具体需求如下。

[JavaScript] 纯文本查看 复制代码
const cName = 'chart' + Math.ceil(Math.random() * 10);
// 这里假设cName='chart8'
const [cName] = () => { console.log('do something') };
// 希望效果是这样chart8= () => { console.log('do something') };

[cName]()
// 希望效果是这样chart8();



当然这样写是报错的,这种需求有什么办法实现,请指教,感谢。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

归隐小赵 发表于 2022-7-1 10:58
数组可以
arr=[];
cname="123"
arr[cname]= () => { console.log('do something') };

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

头像被屏蔽
jmfjmf 发表于 2022-7-1 11:11
头像被屏蔽
jmfjmf 发表于 2022-7-1 11:12
boxer 发表于 2022-7-1 11:48
[JavaScript] 纯文本查看 复制代码
const cName = 'chart' + 8//Math.ceil(Math.random() * 10);
		window[cName] = () => { console.log('do something') };
		chart8();

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 谢谢@Thanks!

查看全部评分

冰茶荼 发表于 2022-7-27 10:30
怎么不考虑放到对象里面

var a='char',b={};
b[a] = 123123123
steven026 发表于 2022-8-1 21:19
[JavaScript] 纯文本查看 复制代码
const cName = 'chart' + Math.ceil(Math.random() * 10);
eval(`${cName} = () => { console.log('do something+${cName}') }`);
eval(`${cName}()`)

还有一种办法用eval,不过这样变量就变全局了
csolbbs123 发表于 2022-8-10 22:46
放对象上呗,直接在上下文生成变量不太行,放window上和用eval都破坏性太大了,放对象上比较合理
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表