JavaScript解析字符串和对象的引用

时间:2014-01-22 16:20:42

标签: javascript

是否可以使用对象本身获取对象的引用

  

OBJ

和字符串形式的属性

  

'address.town.street'

以便最终解析

  

obj.address.town.street

我可以像eval()函数一样使用smth。

2 个答案:

答案 0 :(得分:3)

尝试

function getValue(obj, path) {
    return path.split(".").reduce(function(obj, name){ return obj[name]}, obj);
}

答案 1 :(得分:0)

不要使用eval。请改用

Object.prototype.nestedByString=function(reference){
    var current=this;
    path=reference.split(".");
    for(var i=0;i<path.length;i++){
        current=current[path[i]];
    }
    return current;
}

Here是演示

我想如果你对扩展原生原型过敏,你可以这样做

function nestedByString(obj,reference){
        var current=obj;
        path=reference.split(".");
        for(var i=0;i<path.length;i++){
            current=current[path[i]];
        }
        return current;
}