从JavaScript对象中提取键并用作变量

7 javascript arrays extract object

在PHP中有一个方法extract,它完全按照我想要的方式执行.假设我有一个看起来像这样的对象:

var data = {
    name: "Olly"
    age: 19
};
Run Code Online (Sandbox Code Playgroud)

我想运行一个类似的方法extract(data),然后我可以通过使用nameand age而不是data.name和来访问该对象中的属性data.age.

我做了一些谷歌搜索,找不到任何东西.

red*_*dow 8

你可以使用这样的东西:

function myTestFunction() {
    var data = {
        name: "Olly",
        age: 19,
    };
    for (var key in data) {
        this[key] = data[key];
    }
    alert(name +" is "+ age +"!");
}
myTestFunction();
Run Code Online (Sandbox Code Playgroud)

(试试这里:http://jsfiddle.net/dHDxd/3/)

甚至可以通过使用将它们导出到全局命名空间window[key] = data[key].无论如何,要非常小心,因为破坏全局命名空间/覆盖其他东西等的风险非常高.

更新:通用 extract()

function extract(data, where) {
    for (var key in data) {
        where[key] = data[key];
    }
}

function runTest() {
    var myData = { name: "Olly", age: 19, };
    extract(myData, this);
    alert(name +" is "+ age +"!");
}

runTest();
Run Code Online (Sandbox Code Playgroud)