窗口函数指针在JavaScript中不起作用

时间:2016-11-15 20:03:50

标签: javascript

我有一些代码,当我在字符串中输入它的名字时,我需要调用它。例如:

var util = {
    exByName: function(name) {
        window[name](arguments);
    }
};
util.exByName("console.log", "blah");

当我运行它时,错误' Uncaught TypeError:window [name]不是函数' 但是,当我在浏览器(Opera)中运行它时:

window["console.log"]("blah");

工作正常。 有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

使用其他浏览器和命名空间函数(如console.log),您必须使用:

window["console"]["log"]("blah")

有关详细信息,请参阅this entry

答案 1 :(得分:0)

您无法使用括号中的点表示法访问嵌套对象属性。

相反,通过单独的括号访问不同的嵌套级别:



window["console"]["log"]("foo");




More about object property accessors on MDN