是否可以使用字符串创建新对象?例如,如何将字符串"product"转换为var p = new Product?
提前致谢.
编辑
我想要做的是<a href="#home"></a><a href="#products">products</a>每次都有一个菜单,并从href创建相应的对象.
ZER*_*ER0 67
如果你知道背景,是的.假设您处于浏览器环境中并且Person是全局构造函数.因为任何全局变量都是全局对象的属性,所以它意味着您可以Person通过全局对象进行访问window:
var p = new Person()
Run Code Online (Sandbox Code Playgroud)
相当于:
var p = new window.Person()
Run Code Online (Sandbox Code Playgroud)
所以你可以使用方括号表示法:
var p = new window["Person"]();
Run Code Online (Sandbox Code Playgroud)
当然这对每种物体都有效.如果您不想污染全局范围,您可以:
var mynamespace = {};
mynamespace.Person = function Person() {..}
var p = new mynamespace["Person"]();
Run Code Online (Sandbox Code Playgroud)
那么你总是可以使用可怕的不安全和illadvised eval().例如
var myStr = "Product"
var p = eval("new " + myStr + "()");
Run Code Online (Sandbox Code Playgroud)
或者可能是:
var myStr = "Product"
eval("var p = new " + myStr + "()");
Run Code Online (Sandbox Code Playgroud)
但它充满了潜在的漏洞,特别是如果字符串来自用户输入.
| 归档时间: |
|
| 查看次数: |
49799 次 |
| 最近记录: |