How do you create a reference to an object from its name as a string?
window[objref]
does not work
self[objref]
does not work either
Here is jsfiddle.
Here is the code:
var bob = {
n: {},
y: {
somekey: 12,
oo: 'yah',
pop: {
t: 36
开发者_Python百科 }
},
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);
Have you tried var byval = membersOf(eval(ref));
?
精彩评论