javascript - 如何将数组中的字符串转换为类?
问题描述
我正在尝试将数组中的字符串转换为类,这不是确切的代码,但我想知道如何执行此操作
var classes = ["({x: 0, y: 0, width: 100, height: 100})", "({x: 10, y: 10, width: 70, height: 70})"];
for(var i = 0; i < elements.length;i++) {
var c = new window[classes[i]];
console.log(c.width);
}
解决方案
由于您在classes
变量中提供的语法,您无法使用最简单(也是最安全)的方法,因为您的字符串与JSON SyntaxJSON.parse()
不匹配。
您也可以通过eval()
函数来实现这一点。在 JavaScript 中是本机的:
let classes = ["({x: 0, y: 0, width: 100, height: 100})", "({x: 10, y: 10, width: 70, height: 70})"],
objects = []
objects = classes.map((c)=> eval(c))
console.log(objects)
注意:我绝对不推荐这样做,因为您必须对字符串的来源进行非常严格的控制。否则,此方法可能会在您的应用程序中导致多个漏洞。
推荐阅读
- protocol-buffers - 包装和运输 protoc,因此我们的构建环境不需要预先安装 protoc
- amazon-web-services - AWS:Lightsail 资源查询
- sql - 如何在连接时优先选择一个列值而不是另一个?
- java - 如何防止误改配置文件
- ios - 如何在 imagePickerControllerDelegate 方法中使用五个按钮和五个图像选择
- google-cloud-platform - google-cloud-java 获取当前实例 id 和区域
- python - 将 CSV 文件加载到 BigQuery 中,其中一列包含所有空值
- caching - 浏览器后退按钮不执行控制器方法
- oracle - 如何在 mule 中添加具有 SSL 属性的 Oracle 数据库 URL?
- angular - Angular 6 项目架构