使用对象键作为变量名的javascript

使用对象键作为变量名的javascript,javascript,Javascript,我试图使用对象键p1,p2,p3作为变量名,但我对javascript的了解似乎不足以正确使用。我如何才能做到这一点,所以最后console.log(p1)是value1等 var p = { "p1": "value1", "p2": "value2", "p3": "value3" }; for (var key in p) { if (p.hasOwnProperty(key)) { console.log(key + " -> "

我试图使用对象键
p1
p2
p3
作为变量名,但我对javascript的了解似乎不足以正确使用。我如何才能做到这一点,所以最后
console.log(p1)是value1

var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        console.log(key + " -> " + p[key]);
      var key = p[key]
    }
}

console.log(p1,p2,p3) //value1, value2, value3

您可以使用全局
窗口
对象轻松完成此操作,如:

window[key] = p[key]
var p={
“p1”:“值1”,
“p2”:“值2”,
“p3”:“值3”
};
for(p中的var键){
如果(p.hasOwnProperty(键)){
窗口[键]=p[键]
}
}

log(p1、p2、p3)
事实上,不允许覆盖对象属性键。通过阅读
var key=p[key]
行,我假设这就是您的目标。

这可能是一个X/Y问题。如果以后要静态引用变量,为什么要动态创建该变量?@palasH是否可以不使用窗口对象来创建该变量?