文字列としての名前からオブジェクトへの参照をどのように作成しますか?

StackOverflow https://stackoverflow.com/questions/6304923

質問

window[objref] 動作しません
self[objref] 動作しません

ここは jsfiddle.

これがコードです:

var bob = {
    n: {},
    y: {
        somekey: 12,
        oo: 'yah',
        pop: {
            t: 36
        }
    },
    m: function() {},
    l: 'hi'
};


function membersOf(s) {

    //var o = window[s]; // returns false false
    // var o = self[s]; // returns false false
    var o = s; // returns ["0", "1", "2", "3", "4"] ["somekey", "oo", "pop"]

    var ret_array = [];
    for (var p in o) {
        if (o[p] != o.constructor.prototype[p]) {
            ret_array.push(p);
        }
    }
    if (ret_array.length === 0) {
        return false;
    } else {
        return ret_array;
    }
}

var ref = 'bob.y';
var byname = membersOf(ref);
var byval = membersOf(bob.y);
console.log(byname, byval);
役に立ちましたか?

解決

やってみました var byval = membersOf(eval(ref)); ?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top