如何在JavaScript中将字符串转换为对象?

如何在JavaScript中将字符串转换为对象?,javascript,Javascript,我有一个想法,制作一个web表单,它接收一个对象名并输出其所有属性。为此,我编写了以下代码: var html5form = document.getElementsByClassName("html5_form"); html5form[0].onsubmit = function (e) { var val = e.target.querySelector("input[name=obj]").value, obj = window[val], enu

我有一个想法,制作一个web表单,它接收一个对象名并输出其所有属性。为此,我编写了以下代码:

var html5form = document.getElementsByClassName("html5_form");
html5form[0].onsubmit = function (e) {
    var val = e.target.querySelector("input[name=obj]").value,
        obj = window[val],
        enumObj = new obj();            
    for (prop in enumObj) {                
        console.log(prop);
    }
    return false;
}

我用对象构造函数制作了一个数据列表,并将其附加到输入字段。但我实际上是在迭代对象实例,而不是构造函数。上述代码仅在我输入DataView和ArrayBuffer之类的构造函数时有效,而不适用于数组、数字等。我的代码怎么了?我尝试过调试,但没有结果

不确定这是否是你想要做的

window.myObject = function(){};

var objectName = 'myObject';
var objectInstance = new window[objectName];
objectInstance
现在包含
myObject

另一方面,如果对象只是一个对象文字,则不应使用
new
关键字

window.myObject = {};

var objectName = 'myObject';
var objectReference = window[objectName];

JavaScript没有您所认为的标量/原语对象。有拳击,但仅此而已

例如,当您在字符串对象上使用方法时,例如
'text'.method()
(6).toString()
,会自动将字符串原语装箱到字符串对象。但是,我知道如果不检查数据类型,然后自己选择正确的转换,就无法自动返回装箱值(我甚至不确定这样做是否是最佳做法)。而且,如果要这样做,您还可以更改函数以正确处理原语

另外,这会给你带来什么?假设你得到一个字符串对象。您希望在其上枚举哪些属性?我所知道的这些东西的唯一属性不是属性,但是在装箱对象的原型的方法中,可以使用
this
引用——它返回标量值


问题是,您希望像
Number
String
这样的对象具有属性并像其他对象一样工作,但它们没有属性,也没有属性。

谢谢!你的意思是我应该检查每个对象的名称,并根据该名称创建一个对象吗?不完全是。基本体既没有普通对象,也没有可枚举属性。