使用Javascript中的变量访问对象和对象的属性

时间:2015-10-07 12:54:27

标签: javascript

我知道你可以使用像Object['property']之类的变量访问javascript中对象的属性,但我也想使用变量访问对象

// The object and his function
var Foo = {};
    Foo.bar = function() { console.log("I am a useful function dood"); }

// The accessors
var obj = 'Foo';
var method = 'bar';

但是,当我按照我认为正确的方式尝试时,我得到以下内容。由于世界上的所有链接似乎都是关于使用变量访问对象属性,我似乎无法筛选一个访问这样的对象。

typeof obj           // "object"
typeof Foo[method]   // "function"
typeof [obj].foo     // undefined
typeof [obj][method] // undefined <-- This is what I'm trying to use

我能够像这样访问对象吗?

修改

根据答案,如果对象是全局范围的,我可以使用window[obj][method],但上面包含在一个立即调用的函数中,如下所示:

(function(){
    // The stuff from above...
})();

这项工作我是否必须将其放入一个全局范围内的可识别变量?

PS我永远不会使用eval();

1 个答案:

答案 0 :(得分:1)

如果您的Foo对象位于全局对象,则:

window[obj][method]() //我是一个有用的函数dood`

否则,您需要提供更多信息。