首页 > 解决方案 > 如何将数组中的字符串转换为类?

问题描述

我正在尝试将数组中的字符串转换为类,这不是确切的代码,但我想知道如何执行此操作

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);
}

标签: javascriptarraysclass

解决方案


由于您在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)

注意:我绝对不推荐这样做,因为您必须对字符串的来源进行非常严格的控制。否则,此方法可能会在您的应用程序中导致多个漏洞。


推荐阅读