0

我想要一个函数,可以自动匹配对象内部的变量名称,如果名称匹配,则将它们应用于局部变量。

我目前正在使用这种方式,但随着变量的增加,我想实际创建一个新函数来应用它们。

ob = { a: 1, b: 2, }

-----------------------------

Install(ob)

function Install(ob){
  if('a' in ob) a = ob.a;
  if('b' in ob) b = ob.b;
}

var a; var b;

我想要这样的事情

function Install(ob){
  for( // each ob`s this varaiable name){     
    if (//this name much local variable name){
     //local varaible = ob this variable 
     }
  }
}

这可能吗?非常感谢您的建议。

4

2 回答 2

1

您可以像这样将变量从对象分配到窗口。

function Install(ob) {
    for (var i = 0, keys = Object.keys(ob), l = keys.length; i < l; i++) {
        window[keys[i]] = ob[keys[i]];
    }
}

以后访问它就简单了console.log(varname)。但是你做的很奇怪;)

于 2013-01-12T06:47:40.580 回答
1

如果您只想从对象的所有属性中创建顶级全局变量(我不确定您为什么要这样做),您可以这样做:

var ob = {a: 1, b: 2};
for (var prop in obj) {
    if (obj.hasOwnProperty(prop) {
        window[prop] = obj[prop];
    }
}

否则,请更好地解释您实际要完成的工作。

于 2013-01-12T06:44:03.177 回答